diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java index 46ed348c7..139e89b3d 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/es/JeroElasticsearchTemplate.java @@ -340,7 +340,7 @@ public class JeroElasticsearchTemplate { action.put("create", actionInfo); bodySB.append(action.toJSONString()).append("\n"); // 该行的数据 - data.remove("id"); +// data.remove("id"); bodySB.append(data.toJSONString()).append("\n"); } System.out.println("+-+-+-: bodySB.toString(): " + bodySB.toString()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 1c4d0d9ec..5d7b07420 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -1064,13 +1064,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl 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, ",")); List fileIdList = oSSFileAll.stream().map(OSSFile::getId).collect(Collectors.toList()); List fileInfos = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ",")); @@ -1130,6 +1123,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl list = readFileContent(oSSFileList); -// if(list.size() != 0){ -// fileTextList.add(list) ; -// } } iOSSFileService.updateFileInfo(oSSFileList); valuesBuilder.append("'" + valueTemp + "'" + ","); @@ -1470,11 +1461,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl list = readFileContent(oSSFileList); -// if (list.size() != 0) { -// fileTextList.add(list); -// } valuesBuilder.append("'" + value + "'" + ","); } } else { @@ -1552,6 +1538,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl hashMap = new HashMap<>(); +// for (Map.Entry entry : map.entrySet()) { +// if(fieldListTemp.contains(entry.getKey())){ +// hashMap.put(entry.getKey(),entry.getValue()); +// } +// } +// mapCopy(hashMap, stringMap); mapListTemp.add(stringMap); } @@ -1582,12 +1576,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl getParagraphInfoList(@RequestBody Map map) { + IPage pageInfo = iDocumentSearchService.getParagraphInfoList(map); + return Result.OK(pageInfo); + } + @ApiOperation(value="根据id删除", notes="根据id删除") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java index c3ac69455..e3a0299e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/DocumentSearchServiceImpl.java @@ -23,6 +23,7 @@ import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -181,6 +182,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { return page; } + private void queryCondition(Map mapOne, List inputFieldList, List otherFieldList, JSONArray must) { Map inputMap = new HashMap<>();//条件内容为输入框的 Map otherMap = new HashMap<>();//条件内容为下拉,日期,树形 @@ -413,6 +415,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { fieldList.add("file_text"); fieldList.add("content"); fieldList.add("file_name"); + fieldList.add("id"); JSONArray queryMapJson = new JSONArray(); if(StringUtils.isNotBlank(selectValue)){ @@ -424,8 +427,27 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { queryMapJson.add(queryMap); } } + //处理二次查询中选择了课表数据进行查询的情况 + if(StringUtils.isNotBlank(searchVO.getIds())){ + for (String s : searchVO.getIds().split(",")) { + Map queryMap = new HashMap<>(); + Map 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); //全部 @@ -434,8 +456,8 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { jsonObject, null, null, - searchVO.getPage(), - searchVO.getPageSize()); + pageNo, + pageSize); // JSONObject queryObject11 = jeroElasticsearchTemplate.buildQuery(null, jsonObject11,highlightMap,null, Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString())); //2. 数据查询 JSONObject search = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH.getValue(), @@ -455,10 +477,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { //二次搜索结果 List> mapListTwo = new ArrayList<>(); - //如果勾选了列表数据,则先通过ids过滤一遍数据 - if (list.size() != 0 && StringUtils.isNotBlank(searchVO.getIds())) { - list = list.stream().filter(e -> searchVO.getIds().contains((String) e.get("id"))).collect(Collectors.toList()); - } +// //如果勾选了列表数据,则先通过ids过滤一遍数据 +// if (list.size() != 0 && StringUtils.isNotBlank(searchVO.getIds())) { +// list = list.stream().filter(e -> searchVO.getIds().contains((String) e.get("id"))).collect(Collectors.toList()); +// } List> listNew = new ArrayList<>(); for (Map stringObjectMap : list) { @@ -519,18 +541,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { //截取第一处高亮的前后100个字符 value = getFileText(value, selectValue); } -// else{ -// mapSource.put("file_text_flag","flag"); -// } } if("content".equals(key)){ //判断value中是否包含搜索中的字符 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++) { 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)) { //二次搜索的结果 page.setTotal(Long.parseLong(String.valueOf(((Map) search.get("hits")).get("total")))); @@ -562,7 +576,6 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { page.setRecords(mapList); } return page; - } private String getFileText(String fileTextInfo,String selectValue){ @@ -635,4 +648,54 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { } + /** + * 查询段落 + * @param map + * @return + */ + @Override + public IPage getParagraphInfoList(Map 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 fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); + //输入框字段 + List inputOnlCgformFieldList = fieldList.stream() + .filter(e -> FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType()) + || FieldTypeEnum.TEXT_NUMBER.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List inputFieldList = inputOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + //下拉,树形,日期等字段 + List 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 otherFieldList = otherOnlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); + + + Map mapOne = (Map) map.get("mapOne"); + Map mapTwo = (Map) 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; + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/IDocumentSearchService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/IDocumentSearchService.java index a89cc70e7..b378c7127 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/IDocumentSearchService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/searchcenter/service/impl/IDocumentSearchService.java @@ -19,6 +19,8 @@ public interface IDocumentSearchService { IPage getInfoList(Map map); + IPage getParagraphInfoList(Map map); + IPage getFullTextInfoList(SearchVO searchVO); void deleteById(String ids);