文档库--段落
This commit is contained in:
+1
-1
@@ -340,7 +340,7 @@ public class JeroElasticsearchTemplate {
|
|||||||
action.put("create", actionInfo);
|
action.put("create", actionInfo);
|
||||||
bodySB.append(action.toJSONString()).append("\n");
|
bodySB.append(action.toJSONString()).append("\n");
|
||||||
// 该行的数据
|
// 该行的数据
|
||||||
data.remove("id");
|
// data.remove("id");
|
||||||
bodySB.append(data.toJSONString()).append("\n");
|
bodySB.append(data.toJSONString()).append("\n");
|
||||||
}
|
}
|
||||||
System.out.println("+-+-+-: bodySB.toString(): " + bodySB.toString());
|
System.out.println("+-+-+-: bodySB.toString(): " + bodySB.toString());
|
||||||
|
|||||||
+15
-19
@@ -1064,13 +1064,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
// Map<String,Object> mapFullText = new HashMap<>();
|
|
||||||
// mapFullText.put("id", idTemp);
|
|
||||||
// mapFullText.put("module_type", "文档库");
|
|
||||||
// mapFullText.put("serial_number", map.get("serial_number"));
|
|
||||||
// mapFullText.put("title", map.get("title"));
|
|
||||||
// mapFullText.put("file_text", fileTextList);
|
|
||||||
// mapFullText.put("content", sb.toString());
|
|
||||||
//多文件es iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
|
//多文件es iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
|
||||||
List<String> fileIdList = oSSFileAll.stream().map(OSSFile::getId).collect(Collectors.toList());
|
List<String> fileIdList = oSSFileAll.stream().map(OSSFile::getId).collect(Collectors.toList());
|
||||||
List<OSSFile> fileInfos = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
|
List<OSSFile> fileInfos = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
|
||||||
@@ -1130,6 +1123,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
mapListTemp.add(stringMap);
|
mapListTemp.add(stringMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("文档库新增es错误");
|
log.error("文档库新增es错误");
|
||||||
}
|
}
|
||||||
@@ -1457,11 +1453,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
}
|
}
|
||||||
if(oSSFileList.size() != 0){
|
if(oSSFileList.size() != 0){
|
||||||
oSSFileAll.addAll(oSSFileList);
|
oSSFileAll.addAll(oSSFileList);
|
||||||
//读取word或PDF文件内容
|
|
||||||
// List<String> list = readFileContent(oSSFileList);
|
|
||||||
// if(list.size() != 0){
|
|
||||||
// fileTextList.add(list) ;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
iOSSFileService.updateFileInfo(oSSFileList);
|
iOSSFileService.updateFileInfo(oSSFileList);
|
||||||
valuesBuilder.append("'" + valueTemp + "'" + ",");
|
valuesBuilder.append("'" + valueTemp + "'" + ",");
|
||||||
@@ -1470,11 +1461,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
OSSFile ossFile = new OSSFile();
|
OSSFile ossFile = new OSSFile();
|
||||||
ossFile.setId((String) value);
|
ossFile.setId((String) value);
|
||||||
oSSFileList.add(ossFile);
|
oSSFileList.add(ossFile);
|
||||||
//读取word或PDF文件内容
|
|
||||||
// List<String> list = readFileContent(oSSFileList);
|
|
||||||
// if (list.size() != 0) {
|
|
||||||
// fileTextList.add(list);
|
|
||||||
// }
|
|
||||||
valuesBuilder.append("'" + value + "'" + ",");
|
valuesBuilder.append("'" + value + "'" + ",");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1552,6 +1538,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
stringMap.put("content", sb.toString());
|
stringMap.put("content", sb.toString());
|
||||||
stringMap.put("file_text","");
|
stringMap.put("file_text","");
|
||||||
stringMap.put("file_name","");
|
stringMap.put("file_name","");
|
||||||
|
//下拉框,日期,属性字段也存入到es中
|
||||||
|
// Map<String,Object> hashMap = new HashMap<>();
|
||||||
|
// for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||||
|
// if(fieldListTemp.contains(entry.getKey())){
|
||||||
|
// hashMap.put(entry.getKey(),entry.getValue());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// mapCopy(hashMap, stringMap);
|
||||||
mapListTemp.add(stringMap);
|
mapListTemp.add(stringMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1582,12 +1576,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
|
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
|
||||||
map.put("module_type", "文档库");
|
map.put("module_type", "文档库");
|
||||||
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map));
|
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map));
|
||||||
JSONObject jsonObjectAll = JSON.parseObject(JSON.toJSONString(mapFullText));
|
JSONArray array= JSONArray.parseArray(JSON.toJSONString(mapListTemp));
|
||||||
|
// JSONObject jsonObjectAll = JSON.parseObject(JSON.toJSONString(mapFullText));
|
||||||
//修改es
|
//修改es
|
||||||
try {
|
try {
|
||||||
jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), (String) map.get("id"), jsonObject);
|
jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), (String) map.get("id"), jsonObject);
|
||||||
//添加全文
|
//添加全文
|
||||||
jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.FULL_TEXT_SEARCH.getValue(), SearchEnum.FULL_TEXT_SEARCH.getValue(), (String) map.get("id"), jsonObjectAll);
|
jeroElasticsearchTemplate.saveBatch(SearchEnum.FULL_TEXT_SEARCH.getValue(), SearchEnum.FULL_TEXT_SEARCH.getValue(), array);
|
||||||
|
// jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.FULL_TEXT_SEARCH.getValue(), SearchEnum.FULL_TEXT_SEARCH.getValue(), (String) map.get("id"), jsonObjectAll);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("文档库编辑es失败");
|
log.error("文档库编辑es失败");
|
||||||
}
|
}
|
||||||
|
|||||||
+7
@@ -78,6 +78,13 @@ public class DocumentSearchController {
|
|||||||
return Result.OK(pageInfo);
|
return Result.OK(pageInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value="文档库查询段落", notes="文档库查询段落")
|
||||||
|
@PostMapping(value = "/getParagraphInfoList")
|
||||||
|
public Result<?> getParagraphInfoList(@RequestBody Map<String,Object> map) {
|
||||||
|
IPage pageInfo = iDocumentSearchService.getParagraphInfoList(map);
|
||||||
|
return Result.OK(pageInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value="根据id删除", notes="根据id删除")
|
@ApiOperation(value="根据id删除", notes="根据id删除")
|
||||||
|
|||||||
+79
-16
@@ -23,6 +23,7 @@ import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
|
|||||||
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -181,6 +182,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void queryCondition(Map<String, Object> mapOne, List<String> inputFieldList, List<String> otherFieldList, JSONArray must) {
|
private void queryCondition(Map<String, Object> mapOne, List<String> inputFieldList, List<String> otherFieldList, JSONArray must) {
|
||||||
Map<String, Object> inputMap = new HashMap<>();//条件内容为输入框的
|
Map<String, Object> inputMap = new HashMap<>();//条件内容为输入框的
|
||||||
Map<String, Object> otherMap = new HashMap<>();//条件内容为下拉,日期,树形
|
Map<String, Object> otherMap = new HashMap<>();//条件内容为下拉,日期,树形
|
||||||
@@ -413,6 +415,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
fieldList.add("file_text");
|
fieldList.add("file_text");
|
||||||
fieldList.add("content");
|
fieldList.add("content");
|
||||||
fieldList.add("file_name");
|
fieldList.add("file_name");
|
||||||
|
fieldList.add("id");
|
||||||
|
|
||||||
JSONArray queryMapJson = new JSONArray();
|
JSONArray queryMapJson = new JSONArray();
|
||||||
if(StringUtils.isNotBlank(selectValue)){
|
if(StringUtils.isNotBlank(selectValue)){
|
||||||
@@ -424,8 +427,27 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
queryMapJson.add(queryMap);
|
queryMapJson.add(queryMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//处理二次查询中选择了课表数据进行查询的情况
|
||||||
|
if(StringUtils.isNotBlank(searchVO.getIds())){
|
||||||
|
for (String s : searchVO.getIds().split(",")) {
|
||||||
|
Map<String, Object> queryMap = new HashMap<>();
|
||||||
|
Map<String, Object> queryMapTemp = new HashMap<>();
|
||||||
|
queryMapTemp.put("id", s);
|
||||||
|
queryMap.put("match", queryMapTemp);
|
||||||
|
queryMapJson.add(queryMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Integer pageNo = searchVO.getPage();
|
||||||
|
Integer pageSize = searchVO.getPageSize();
|
||||||
|
IPage page = getiPage(selectValue, selectValueTwo, queryMapJson, pageNo, pageSize);
|
||||||
|
|
||||||
|
|
||||||
|
return page;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private IPage getiPage(String selectValue, String selectValueTwo, JSONArray queryMapJson, Integer pageNo, Integer pageSize) {
|
||||||
//基础添加封装
|
//基础添加封装
|
||||||
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
|
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
|
||||||
//全部
|
//全部
|
||||||
@@ -434,8 +456,8 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
jsonObject,
|
jsonObject,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
searchVO.getPage(),
|
pageNo,
|
||||||
searchVO.getPageSize());
|
pageSize);
|
||||||
// JSONObject queryObject11 = jeroElasticsearchTemplate.buildQuery(null, jsonObject11,highlightMap,null, Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString()));
|
// JSONObject queryObject11 = jeroElasticsearchTemplate.buildQuery(null, jsonObject11,highlightMap,null, Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString()));
|
||||||
//2. 数据查询
|
//2. 数据查询
|
||||||
JSONObject search = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH.getValue(),
|
JSONObject search = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH.getValue(),
|
||||||
@@ -455,10 +477,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
//二次搜索结果
|
//二次搜索结果
|
||||||
List<Map<String, Object>> mapListTwo = new ArrayList<>();
|
List<Map<String, Object>> mapListTwo = new ArrayList<>();
|
||||||
|
|
||||||
//如果勾选了列表数据,则先通过ids过滤一遍数据
|
// //如果勾选了列表数据,则先通过ids过滤一遍数据
|
||||||
if (list.size() != 0 && StringUtils.isNotBlank(searchVO.getIds())) {
|
// if (list.size() != 0 && StringUtils.isNotBlank(searchVO.getIds())) {
|
||||||
list = list.stream().filter(e -> searchVO.getIds().contains((String) e.get("id"))).collect(Collectors.toList());
|
// list = list.stream().filter(e -> searchVO.getIds().contains((String) e.get("id"))).collect(Collectors.toList());
|
||||||
}
|
// }
|
||||||
|
|
||||||
List<Map<String, Object>> listNew = new ArrayList<>();
|
List<Map<String, Object>> listNew = new ArrayList<>();
|
||||||
for (Map<String, Object> stringObjectMap : list) {
|
for (Map<String, Object> stringObjectMap : list) {
|
||||||
@@ -519,18 +541,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
//截取第一处高亮的前后100个字符
|
//截取第一处高亮的前后100个字符
|
||||||
value = getFileText(value, selectValue);
|
value = getFileText(value, selectValue);
|
||||||
}
|
}
|
||||||
// else{
|
|
||||||
// mapSource.put("file_text_flag","flag");
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
if("content".equals(key)){
|
if("content".equals(key)){
|
||||||
//判断value中是否包含搜索中的字符
|
//判断value中是否包含搜索中的字符
|
||||||
boolean flag = judgeContains(value, selectValue);
|
boolean flag = judgeContains(value, selectValue);
|
||||||
// if(flag){
|
|
||||||
// mapSource.put("content_flag","true");
|
|
||||||
// }else{
|
|
||||||
// mapSource.put("content_flag","false");
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
for (int i = 0; i < value.length(); i++) {
|
for (int i = 0; i < value.length(); i++) {
|
||||||
String chStr = String.valueOf(value.charAt(i));
|
String chStr = String.valueOf(value.charAt(i));
|
||||||
@@ -551,7 +565,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
|
|
||||||
|
|
||||||
//处理分页
|
//处理分页
|
||||||
IPage page = new Page(searchVO.getPage(), searchVO.getPageSize());
|
IPage page = new Page(pageNo, pageSize);
|
||||||
if (StringUtils.isNotBlank(selectValueTwo)) {
|
if (StringUtils.isNotBlank(selectValueTwo)) {
|
||||||
//二次搜索的结果
|
//二次搜索的结果
|
||||||
page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total"))));
|
page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total"))));
|
||||||
@@ -562,7 +576,6 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
page.setRecords(mapList);
|
page.setRecords(mapList);
|
||||||
}
|
}
|
||||||
return page;
|
return page;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getFileText(String fileTextInfo,String selectValue){
|
private String getFileText(String fileTextInfo,String selectValue){
|
||||||
@@ -635,4 +648,54 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询段落
|
||||||
|
* @param map
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public IPage getParagraphInfoList(Map<String, Object> map) {
|
||||||
|
//module_type 代表文档库的段落
|
||||||
|
//判断索引是否存在
|
||||||
|
boolean flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH.getValue());
|
||||||
|
if(!flagTemp){
|
||||||
|
return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString()));
|
||||||
|
}
|
||||||
|
//文档库所有的字段
|
||||||
|
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
||||||
|
//输入框字段
|
||||||
|
List<OnlCgformField> inputOnlCgformFieldList = fieldList.stream()
|
||||||
|
.filter(e -> FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType())
|
||||||
|
|| FieldTypeEnum.TEXT_NUMBER.getValue().equals(e.getFieldShowType()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
List<String> inputFieldList = inputOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
|
||||||
|
//下拉,树形,日期等字段
|
||||||
|
List<OnlCgformField> otherOnlCgformFieldList = fieldList.stream()
|
||||||
|
.filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType())//下拉单选
|
||||||
|
|| FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())//下拉多选
|
||||||
|
|| FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())//日期单选
|
||||||
|
|| FieldTypeEnum.DATE_MORE.getValue().equals(e.getFieldShowType())//日期多选
|
||||||
|
|| FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))//树形
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
List<String> otherFieldList = otherOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> mapOne = (Map<String, Object>) map.get("mapOne");
|
||||||
|
Map<String, Object> mapTwo = (Map<String, Object>) map.get("mapTwo");
|
||||||
|
JSONArray must = new JSONArray();
|
||||||
|
//处理首次查询条件
|
||||||
|
if(ObjectUtils.isNotEmpty(mapOne)){
|
||||||
|
queryCondition(mapOne, inputFieldList, otherFieldList, must);
|
||||||
|
}
|
||||||
|
//处理二次查询条件
|
||||||
|
if(ObjectUtils.isNotEmpty(mapTwo)){
|
||||||
|
queryCondition(mapTwo, inputFieldList, otherFieldList, must);
|
||||||
|
}
|
||||||
|
int pageNo = Integer.parseInt(map.get("pageNo").toString());
|
||||||
|
int pageSize = Integer.parseInt(map.get("pageSize").toString());
|
||||||
|
|
||||||
|
getiPage(null,null,must,pageNo,pageSize);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -19,6 +19,8 @@ public interface IDocumentSearchService {
|
|||||||
|
|
||||||
IPage getInfoList(Map<String, Object> map);
|
IPage getInfoList(Map<String, Object> map);
|
||||||
|
|
||||||
|
IPage getParagraphInfoList(Map<String, Object> map);
|
||||||
|
|
||||||
IPage getFullTextInfoList(SearchVO searchVO);
|
IPage getFullTextInfoList(SearchVO searchVO);
|
||||||
|
|
||||||
void deleteById(String ids);
|
void deleteById(String ids);
|
||||||
|
|||||||
Reference in New Issue
Block a user