文档库--数据字典

This commit is contained in:
zhn
2022-03-28 17:35:11 +08:00
parent de7ce43ae7
commit c61ec86e0a
2 changed files with 274 additions and 287 deletions
@@ -239,7 +239,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
jeroElasticsearchTemplate.delete(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), id);
jeroElasticsearchTemplate.delete(SearchEnum.FULL_TEXT_SEARCH.getValue(), SearchEnum.FULL_TEXT_SEARCH.getValue(), id);
for (String fileId : fileIdList) {
jeroElasticsearchTemplate.delete(SearchEnum.FULL_TEXT_SEARCH.getValue(), SearchEnum.FULL_TEXT_SEARCH.getValue(), id+fileId);
jeroElasticsearchTemplate.delete(SearchEnum.FULL_TEXT_SEARCH.getValue(), SearchEnum.FULL_TEXT_SEARCH.getValue(), id + fileId);
}
}
@@ -456,25 +456,27 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName, sysCategoryTreeVOList);
map.put("field_must_input", onlCgformField.getFieldMustInput());//是否必填
map.put("db_length", onlCgformField.getDbLength());//字段长度
if(fieldFileList.contains(onlCgformField.getDbFieldName()) && onlCgformField.getIsReadOnly()==1){
if (fieldFileList.contains(onlCgformField.getDbFieldName()) && onlCgformField.getIsReadOnly() == 1) {
map.put("flag", "1");//固定文件标识
}else if(fieldFileList.contains(onlCgformField.getDbFieldName()) && onlCgformField.getIsReadOnly()==0){
} else if (fieldFileList.contains(onlCgformField.getDbFieldName()) && onlCgformField.getIsReadOnly() == 0) {
map.put("flag", "0");//非固定文件字段
}
result.add(map);
}
}
if(CutEnum.CN.getValue().equals(cut)){
if (CutEnum.CN.getValue().equals(cut)) {
mapTemp.put(onlCgformAreaTemp.getShowArea(), result);
}else{
} else {
mapTemp.put(onlCgformAreaTemp.getEnName(), result);
}
resultTemp.add(mapTemp);
}
return resultTemp;
}
/**
*模板下载字段
* 模板下载字段
*
* @return
*/
public List<Map<String, Object>> getField(String flag, String cut, String type) {
@@ -637,7 +639,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (StringUtils.isNotBlank((String) dataList.get(0).get("technology_territory"))) {
String technologyTerritory = (String) dataList.get(0).get("technology_territory");
dataList.get(0).put("technology_territory", Arrays.asList(technologyTerritory.split(",")));
}else{
} else {
dataList.get(0).put("technology_territory", null);
}
return dataList;
@@ -805,10 +807,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
});
//下拉单选和下拉多选数据字典处理
List<OnlCgformField> finalFieldList = fieldList;
dataList.get(0).entrySet().forEach(entry -> {
if (fieldPullList.contains(entry.getKey())) {
//下拉选处理数据字典
dictItem(sysDictItems, entry, onlCgformFieldList, cut);
dictItem(sysDictItems, entry, cut, finalFieldList);
}
});
@@ -957,13 +960,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
Date issueTimeDate = df.parse(issueTime);
String implementTime = (String) map.get("implement_time");//在产车实施日期
String newCarimplementTime = (String) map.get("xin1_che1_xing2_ren4_zheng4_shi2_jian1");//新车型实施日期
if(StringUtils.isNotBlank(implementTime)){
if (StringUtils.isNotBlank(implementTime)) {
Date implementTimeDate = df.parse(implementTime);
if (issueTimeDate.after(implementTimeDate)) {
throw new JeroBootException("发布日期不能大于在产车实施日期");
}
}
if(StringUtils.isNotBlank(newCarimplementTime)){
if (StringUtils.isNotBlank(newCarimplementTime)) {
Date newCarimplementTimeDate = df.parse(newCarimplementTime);
if (issueTimeDate.after(newCarimplementTimeDate)) {
throw new JeroBootException("发布日期不能大于新车型实施日期");
@@ -1019,14 +1022,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
esFullText(cut, fieldList, categoryList, dictItemList, mapList, sb, entry);
//处理日期格式
if(fieldDateList.contains(key)){
if (fieldDateList.contains(key)) {
if (ObjectUtils.isNotEmpty(value)) {
value = "str_to_date('" + value + "','%Y-%m-%d')";
}else{
} else {
value = null;
}
valuesBuilder.append("," + value);
}else {
} else {
//处理文件类型
List<OnlCgformField> fieldFile = null;
try {
@@ -1045,7 +1048,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
ossFile.setConnectId(valueTemp);
oSSFileList.add(ossFile);
}
if(oSSFileList.size() != 0){
if (oSSFileList.size() != 0) {
oSSFileAll.addAll(oSSFileList);
//读取word或PDF文件内容
// List<String> list = readFileContent(oSSFileList);
@@ -1067,65 +1070,63 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//多文件es iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
List<String> fileIdList = oSSFileAll.stream().map(OSSFile::getId).collect(Collectors.toList());
List<OSSFile> fileInfos = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
List<Map<String,Object>> mapListTemp = new ArrayList<>();
List<Map<String, Object>> mapListTemp = new ArrayList<>();
try {
if(fileInfos.size() != 0){
if (fileInfos.size() != 0) {
for (OSSFile ossFile : fileInfos) {
Map<String,Object> stringMap = new HashMap<>();
Map<String, Object> stringMap = new HashMap<>();
String fileText = "";
if(ossFile.getFileName().endsWith(".doc")
if (ossFile.getFileName().endsWith(".doc")
|| ossFile.getFileName().endsWith(".docx")
|| ossFile.getFileName().endsWith(".DOC")
|| ossFile.getFileName().endsWith(".DOCX")){
|| ossFile.getFileName().endsWith(".DOCX")) {
String wordContent = ReadWordUtil.readWord(ossFile.getUrl());
if(StringUtils.isNotBlank(wordContent)){
if (StringUtils.isNotBlank(wordContent)) {
fileText = wordContent;
}
}else if(ossFile.getFileName().endsWith(".pdf")||ossFile.getFileName().endsWith(".PDF")){
} else if (ossFile.getFileName().endsWith(".pdf") || ossFile.getFileName().endsWith(".PDF")) {
String pdfContent = ReadPdfUtil.readPdf(ossFile.getUrl());
if(StringUtils.isNotBlank(pdfContent)){
if (StringUtils.isNotBlank(pdfContent)) {
fileText = pdfContent;
}
}
for (OnlCgformField onlCgformField : searchFieldList) {
String s = (String) map.get(onlCgformField.getDbFieldName());
if(StringUtils.isBlank(s)){
if (StringUtils.isBlank(s)) {
s = "";
}
stringMap.put(onlCgformField.getDbFieldName(),s);
stringMap.put(onlCgformField.getDbFieldName(), s);
}
stringMap.put("id",idTemp+ossFile.getId());
stringMap.put("id", idTemp + ossFile.getId());
stringMap.put("module_type", "文档库");
stringMap.put("serial_number", map.get("serial_number"));
stringMap.put("title", map.get("title"));
stringMap.put("content", sb.toString());
stringMap.put("file_text",fileText);
stringMap.put("file_name",ossFile.getFileName());
stringMap.put("file_text", fileText);
stringMap.put("file_name", ossFile.getFileName());
mapListTemp.add(stringMap);
}
}else{
Map<String,Object> stringMap = new HashMap<>();
} else {
Map<String, Object> stringMap = new HashMap<>();
for (OnlCgformField onlCgformField : searchFieldList) {
String s = (String) map.get(onlCgformField.getDbFieldName());
if(StringUtils.isBlank(s)){
if (StringUtils.isBlank(s)) {
s = "";
}
stringMap.put(onlCgformField.getDbFieldName(),s);
stringMap.put(onlCgformField.getDbFieldName(), s);
}
stringMap.put("id",idTemp);
stringMap.put("id", idTemp);
stringMap.put("module_type", "文档库");
stringMap.put("serial_number", map.get("serial_number"));
stringMap.put("title", map.get("title"));
stringMap.put("content", sb.toString());
stringMap.put("file_text","");
stringMap.put("file_name","");
stringMap.put("file_text", "");
stringMap.put("file_name", "");
mapListTemp.add(stringMap);
}
} catch (Exception e) {
log.error("文档库新增es错误");
}
@@ -1147,7 +1148,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
map.put("module_type", "文档库");
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map));
// JSONObject jsonObjectAll = JSON.parseObject(JSON.toJSONString(mapFullText));
JSONArray array= JSONArray.parseArray(JSON.toJSONString(mapListTemp));
JSONArray array = JSONArray.parseArray(JSON.toJSONString(mapListTemp));
try {
jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), idTemp, jsonObject);
@@ -1160,76 +1161,81 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/**
* //读取word或PDF文件内容
*
* @param oSSFileList
*/
public List<String> readFileContent(List<OSSFile> oSSFileList){
public List<String> readFileContent(List<OSSFile> oSSFileList) {
//查询文件详细信息
List<String> fileIdList = oSSFileList.stream().map(OSSFile::getId).collect(Collectors.toList());
oSSFileList = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
List<String> result = new ArrayList<>();
for (OSSFile ossFile : oSSFileList) {
if(ossFile.getFileName().endsWith(".doc")
if (ossFile.getFileName().endsWith(".doc")
|| ossFile.getFileName().endsWith(".docx")
|| ossFile.getFileName().endsWith(".DOC")
|| ossFile.getFileName().endsWith(".DOCX")){
|| ossFile.getFileName().endsWith(".DOCX")) {
String wordContent = ReadWordUtil.readWord(ossFile.getUrl());
if(StringUtils.isNotBlank(wordContent)){
if (StringUtils.isNotBlank(wordContent)) {
result.add(wordContent);
}
}else if(ossFile.getFileName().endsWith(".pdf")||ossFile.getFileName().endsWith(".PDF")){
} else if (ossFile.getFileName().endsWith(".pdf") || ossFile.getFileName().endsWith(".PDF")) {
String pdfContent = ReadPdfUtil.readPdf(ossFile.getUrl());
if(StringUtils.isNotBlank(pdfContent)){
if (StringUtils.isNotBlank(pdfContent)) {
result.add(pdfContent);
}
}
}
return result;
}
private void esFullText(String cut, List<OnlCgformField> fieldList, List<SysCategory> categoryList, List<SysDictItem> dictItemList, List<Map<String, Object>> mapList, StringBuilder sb, Map.Entry<String, Object> entry) {
try {
List<OnlCgformField> onlCgformFieldList = fieldList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
for (OnlCgformField onlCgformField : fieldList) {
//输入框
if((FieldTypeEnum.TEXT_STRING.getValue().equals(onlCgformField.getFieldShowType())
if ((FieldTypeEnum.TEXT_STRING.getValue().equals(onlCgformField.getFieldShowType())
|| FieldTypeEnum.TEXT_NUMBER.getValue().equals(onlCgformField.getFieldShowType()))
&& onlCgformField.getDbFieldName().equals(entry.getKey())){
if(ObjectUtils.isEmpty(entry.getValue())){
sb.append(onlCgformField.getDbFieldTxt()+":"+"-- ");
}else{
sb.append(onlCgformField.getDbFieldTxt()+":"+entry.getValue()+" ");
&& onlCgformField.getDbFieldName().equals(entry.getKey())) {
if (ObjectUtils.isEmpty(entry.getValue())) {
sb.append(onlCgformField.getDbFieldTxt() + ":" + "-- ");
} else {
sb.append(onlCgformField.getDbFieldTxt() + ":" + entry.getValue() + " ");
}
}
//下拉框
if((FieldTypeEnum.PULL_SINGLE.getValue().equals(onlCgformField.getFieldShowType())
if ((FieldTypeEnum.PULL_SINGLE.getValue().equals(onlCgformField.getFieldShowType())
|| FieldTypeEnum.PULL_MORE.getValue().equals(onlCgformField.getFieldShowType()))
&& onlCgformField.getDbFieldName().equals(entry.getKey())){
if(ObjectUtils.isEmpty(entry.getValue())){
sb.append(onlCgformField.getDbFieldTxt()+":"+"-- ");
}else{
List<SysDictItem> dictItems = dictItemList.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(entry.getKey()))
.collect(Collectors.toList());
StringBuilder sbText = new StringBuilder();
//处理数据字典
for (String item : entry.getValue().toString().split(",")) {
if(dictItems.size() != 0){
List<SysDictItem> itemValue = dictItems.stream().filter(e -> item.equals(e.getItemValue())).collect(Collectors.toList());
if(itemValue.size() != 0){
sbText.append(itemValue.get(0).getItemText()+",");
&& onlCgformField.getDbFieldName().equals(entry.getKey())) {
if (ObjectUtils.isEmpty(entry.getValue())) {
sb.append(onlCgformField.getDbFieldTxt() + ":" + "-- ");
} else {
if (onlCgformFieldList.size() != 0 && StringUtils.isNotBlank(onlCgformFieldList.get(0).getDictField())) {
List<SysDictItem> dictItems = dictItemList.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(onlCgformFieldList.get(0).getDictField()))
.collect(Collectors.toList());
StringBuilder sbText = new StringBuilder();
//处理数据字典
for (String item : entry.getValue().toString().split(",")) {
if (dictItems.size() != 0) {
List<SysDictItem> itemValue = dictItems.stream().filter(e -> item.equals(e.getItemValue())).collect(Collectors.toList());
if (itemValue.size() != 0) {
sbText.append(itemValue.get(0).getItemText() + ",");
}
}
}
}
if(StringUtils.isNotBlank(sbText)){
String substring = sbText.substring(0, sbText.length() - 1);
sb.append(onlCgformField.getDbFieldTxt()+":"+substring+" ");
if (StringUtils.isNotBlank(sbText)) {
String substring = sbText.substring(0, sbText.length() - 1);
sb.append(onlCgformField.getDbFieldTxt() + ":" + substring + " ");
}
}
}
}
//树形
if(FieldTypeEnum.TREE.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())){
if(ObjectUtils.isEmpty(entry.getValue())){
sb.append(onlCgformField.getDbFieldTxt()+":"+"-- ");
}else{
if (FieldTypeEnum.TREE.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())) {
if (ObjectUtils.isEmpty(entry.getValue())) {
sb.append(onlCgformField.getDbFieldTxt() + ":" + "-- ");
} else {
StringBuilder sbTree = new StringBuilder();
List<String> idList = Arrays.asList(entry.getValue().toString().split(","));
List<SysCategory> sysCategoryList = categoryList.stream().filter(e -> idList.contains(e.getId())).collect(Collectors.toList());
@@ -1240,67 +1246,67 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} else {
sbTree.append(StringUtils.join(nameEnList, ","));
}
sb.append(onlCgformField.getDbFieldTxt()+":"+sbTree.toString()+" ");
sb.append(onlCgformField.getDbFieldTxt() + ":" + sbTree.toString() + " ");
}
}
//日期
if(FieldTypeEnum.DATE_SINGLE.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())){
if(ObjectUtils.isEmpty(entry.getValue())){
sb.append(onlCgformField.getDbFieldTxt()+":"+"-- ");
}else{
sb.append(onlCgformField.getDbFieldTxt()+":"+entry.getValue().toString().split(" ")[0]+" ");
if (FieldTypeEnum.DATE_SINGLE.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())) {
if (ObjectUtils.isEmpty(entry.getValue())) {
sb.append(onlCgformField.getDbFieldTxt() + ":" + "-- ");
} else {
sb.append(onlCgformField.getDbFieldTxt() + ":" + entry.getValue().toString().split(" ")[0] + " ");
}
}
//标准选择
if(FieldTypeEnum.STANDARD.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())){
if(ObjectUtils.isEmpty(entry.getValue())){
sb.append(onlCgformField.getDbFieldTxt()+":"+"-- ");
}else{
if (FieldTypeEnum.STANDARD.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())) {
if (ObjectUtils.isEmpty(entry.getValue())) {
sb.append(onlCgformField.getDbFieldTxt() + ":" + "-- ");
} else {
StringBuilder standSb = new StringBuilder();
if("replaced_standard".equals(entry.getKey())){
if ("replaced_standard".equals(entry.getKey())) {
//被代替标准
for (Map<String, Object> stringObjectMap : mapList) {
String replaceStandard = (String) stringObjectMap.get("replace_standard");
if(StringUtils.isNotBlank(replaceStandard) && replaceStandard.contains((String)entry.getValue())){
standSb.append(stringObjectMap.get("serial_number")+",");
if (StringUtils.isNotBlank(replaceStandard) && replaceStandard.contains((String) entry.getValue())) {
standSb.append(stringObjectMap.get("serial_number") + ",");
}
}
}else{
} else {
//对应标准,代替标准
for (String valueTemp : entry.getValue().toString().split(",")) {
if(isId(valueTemp)){
if (isId(valueTemp)) {
//是id
for (Map<String, Object> stringObjectMap : mapList) {
if(stringObjectMap.get("id").equals(valueTemp)){
standSb.append(stringObjectMap.get("serial_number")+",");
if (stringObjectMap.get("id").equals(valueTemp)) {
standSb.append(stringObjectMap.get("serial_number") + ",");
}
}
}else{
} else {
//不是id
standSb.append(valueTemp+",");
standSb.append(valueTemp + ",");
}
}
}
if(StringUtils.isNotBlank(standSb)){
if (StringUtils.isNotBlank(standSb)) {
String substring = standSb.substring(0, standSb.length() - 1);
sb.append(onlCgformField.getDbFieldTxt()+":"+substring+" ");
sb.append(onlCgformField.getDbFieldTxt() + ":" + substring + " ");
}
}
}
//文件
if(FieldTypeEnum.FILE.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())){
if(ObjectUtils.isEmpty(entry.getValue())){
sb.append(onlCgformField.getDbFieldTxt()+":"+"-- ");
}else{
if (FieldTypeEnum.FILE.getValue().equals(onlCgformField.getFieldShowType())
&& onlCgformField.getDbFieldName().equals(entry.getKey())) {
if (ObjectUtils.isEmpty(entry.getValue())) {
sb.append(onlCgformField.getDbFieldTxt() + ":" + "-- ");
} else {
List<OSSFile> fileInfos = iOSSFileService.getFileInfos((String) entry.getValue());
List<String> fileNameList = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.toList());
sb.append(onlCgformField.getDbFieldTxt()+":"+StringUtils.join(fileNameList,",")+" ");
sb.append(onlCgformField.getDbFieldTxt() + ":" + StringUtils.join(fileNameList, ",") + " ");
}
}
}
@@ -1343,13 +1349,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
Date issueTimeDate = df.parse(issueTime);
String implementTime = (String) map.get("implement_time");//在产车实施日期
String newCarimplementTime = (String) map.get("xin1_che1_xing2_ren4_zheng4_shi2_jian1");//新车型实施日期
if(StringUtils.isNotBlank(implementTime)){
if (StringUtils.isNotBlank(implementTime)) {
Date implementTimeDate = df.parse(implementTime);
if (issueTimeDate.after(implementTimeDate)) {
throw new JeroBootException("发布日期不能大于在产车实施日期");
}
}
if(StringUtils.isNotBlank(newCarimplementTime)){
if (StringUtils.isNotBlank(newCarimplementTime)) {
Date newCarimplementTimeDate = df.parse(newCarimplementTime);
if (issueTimeDate.after(newCarimplementTimeDate)) {
throw new JeroBootException("发布日期不能大于新车型实施日期");
@@ -1419,19 +1425,19 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
StringBuilder sb = new StringBuilder();
//调整map中字段的顺序和新增表单中字段顺序一致
Map<String,Object> mapNew = new LinkedHashMap<>();
Map<String, Object> mapNew = new LinkedHashMap<>();
for (OnlCgformField onlCgformField : fieldList) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
//固定字段
if("create_by".equals(entry.getKey())
if ("create_by".equals(entry.getKey())
|| "create_time".equals(entry.getKey())
|| "update_by".equals(entry.getKey())
|| "update_time".equals(entry.getKey())
|| "sys_org_code".equals(entry.getKey())){
mapNew.put(entry.getKey(),entry.getValue());
}else if(onlCgformField.getDbFieldName().equals(entry.getKey())){
mapNew.put(entry.getKey(),entry.getValue());
break;
|| "sys_org_code".equals(entry.getKey())) {
mapNew.put(entry.getKey(), entry.getValue());
} else if (onlCgformField.getDbFieldName().equals(entry.getKey())) {
mapNew.put(entry.getKey(), entry.getValue());
break;
}
}
}
@@ -1472,7 +1478,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
ossFile.setConnectId(valueTemp);
oSSFileList.add(ossFile);
}
if(oSSFileList.size() != 0){
if (oSSFileList.size() != 0) {
oSSFileAll.addAll(oSSFileList);
}
iOSSFileService.updateFileInfo(oSSFileList);
@@ -1498,59 +1504,59 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
List<String> fileIdList = oSSFileAll.stream().map(OSSFile::getId).collect(Collectors.toList());
List<OSSFile> fileInfos = iOSSFileService.getFileInfos(StringUtils.join(fileIdList, ","));
List<Map<String,Object>> mapListTemp = new ArrayList<>();
List<Map<String, Object>> mapListTemp = new ArrayList<>();
try {
if(fileInfos.size() != 0){
if (fileInfos.size() != 0) {
for (OSSFile ossFile : fileInfos) {
Map<String,Object> stringMap = new HashMap<>();
Map<String, Object> stringMap = new HashMap<>();
String fileText = "";
if(ossFile.getFileName().endsWith(".doc")
if (ossFile.getFileName().endsWith(".doc")
|| ossFile.getFileName().endsWith(".docx")
|| ossFile.getFileName().endsWith(".DOC")
|| ossFile.getFileName().endsWith(".DOCX")){
|| ossFile.getFileName().endsWith(".DOCX")) {
String wordContent = ReadWordUtil.readWord(ossFile.getUrl());
if(StringUtils.isNotBlank(wordContent)){
if (StringUtils.isNotBlank(wordContent)) {
fileText = wordContent;
}
}else if(ossFile.getFileName().endsWith(".pdf")||ossFile.getFileName().endsWith(".PDF")){
} else if (ossFile.getFileName().endsWith(".pdf") || ossFile.getFileName().endsWith(".PDF")) {
String pdfContent = ReadPdfUtil.readPdf(ossFile.getUrl());
if(StringUtils.isNotBlank(pdfContent)){
if (StringUtils.isNotBlank(pdfContent)) {
fileText = pdfContent;
}
}
for (OnlCgformField onlCgformField : searchFieldList) {
String s = (String) map.get(onlCgformField.getDbFieldName());
if(StringUtils.isBlank(s)){
if (StringUtils.isBlank(s)) {
s = "";
}
stringMap.put(onlCgformField.getDbFieldName(),s);
stringMap.put(onlCgformField.getDbFieldName(), s);
}
stringMap.put("id",(String) map.get("id")+ossFile.getId());
stringMap.put("id", (String) map.get("id") + ossFile.getId());
stringMap.put("module_type", "文档库");
stringMap.put("serial_number", map.get("serial_number"));
stringMap.put("title", map.get("title"));
stringMap.put("content", sb.toString());
stringMap.put("file_text",fileText);
stringMap.put("file_name",ossFile.getFileName());
stringMap.put("file_text", fileText);
stringMap.put("file_name", ossFile.getFileName());
mapListTemp.add(stringMap);
}
}else{
Map<String,Object> stringMap = new HashMap<>();
} else {
Map<String, Object> stringMap = new HashMap<>();
for (OnlCgformField onlCgformField : searchFieldList) {
String s = (String) map.get(onlCgformField.getDbFieldName());
if(StringUtils.isBlank(s)){
if (StringUtils.isBlank(s)) {
s = "";
}
stringMap.put(onlCgformField.getDbFieldName(),s);
stringMap.put(onlCgformField.getDbFieldName(), s);
}
stringMap.put("id",(String) map.get("id"));
stringMap.put("id", (String) map.get("id"));
stringMap.put("module_type", "文档库");
stringMap.put("serial_number", map.get("serial_number"));
stringMap.put("title", map.get("title"));
stringMap.put("content", sb.toString());
stringMap.put("file_text","");
stringMap.put("file_name","");
stringMap.put("file_text", "");
stringMap.put("file_name", "");
mapListTemp.add(stringMap);
}
@@ -1581,7 +1587,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
map.put("module_type", "文档库");
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map));
JSONArray array= JSONArray.parseArray(JSON.toJSONString(mapListTemp));
JSONArray array = JSONArray.parseArray(JSON.toJSONString(mapListTemp));
// JSONObject jsonObjectAll = JSON.parseObject(JSON.toJSONString(mapFullText));
//修改es
try {
@@ -1627,11 +1633,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
@NotNull
private StringBuilder getUpdateInfo(Map<String, Object> map, List<Map<String, Object>> dataList, List<OnlCgformField> fieldList, List<OnlCgformField> fieldDateList, List<OnlCgformField> fieldFileList, List<OnlCgformField> fieldPullList, String cut) {
//调整dataList中map中字段顺序与表单中的一致
Map<String,Object> mapNew = new LinkedHashMap<>();
Map<String, Object> mapNew = new LinkedHashMap<>();
for (OnlCgformField onlCgformField : fieldList) {
for (Map.Entry<String, Object> entry : dataList.get(0).entrySet()) {
if(onlCgformField.getDbFieldName().equals(entry.getKey())){
mapNew.put(entry.getKey(),entry.getValue());
if (onlCgformField.getDbFieldName().equals(entry.getKey())) {
mapNew.put(entry.getKey(), entry.getValue());
break;
}
}
@@ -1656,19 +1662,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<SysCategory> categoryList = sysCategoryService.list();
//下拉选处理数据字典
for (Map.Entry<String, Object> entry : dataList.get(0).entrySet()) {
List<OnlCgformField> collect = fieldPullList.stream()
.filter(e -> entry.getKey().equals(e.getDictField()))
.collect(Collectors.toList());
//下拉选处理数据字典
dictItem(sysDictItems, entry, collect, cut);
dictItem(sysDictItems, entry, cut, fieldList);
treeDictItem(categoryList, entry, treeFieldList, cut);
}
for (Map.Entry<String, Object> entry : mapTemp.entrySet()) {
List<OnlCgformField> collect = fieldPullList.stream()
.filter(e -> entry.getKey().equals(e.getDictField()))
.collect(Collectors.toList());
//下拉选处理数据字典
dictItem(sysDictItems, entry, collect, cut);
dictItem(sysDictItems, entry, cut, fieldList);
treeDictItem(categoryList, entry, treeFieldList, cut);
}
@@ -1755,7 +1755,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
}
//其他类型(被代替标准不处理)
if(!"replaced_standard".equals(key)){
if (!"replaced_standard".equals(key)) {
if (ObjectUtils.isNotEmpty(value)) {
if (ObjectUtils.isNotEmpty(valueTemp) && !value.equals(valueTemp)) {
sb.append(dbFieldTxt + "" + value + "改为" + valueTemp + ",");
@@ -1879,7 +1879,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
private void replaceStandardSend(List<String> documentIdList) {
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(StringUtils.join(documentIdList,","));
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(StringUtils.join(documentIdList, ","));
List<String> userNameListTemp = new ArrayList<>();
List<String> serialNumberList = new ArrayList<>();
StringBuilder sb = new StringBuilder();
@@ -1944,23 +1944,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//查询内容
String field = " id,serial_number,title,state";
//需求变更,搜索条件有原来的编码和标题改为和文档库一致
// //查询条件
// StringBuilder conditionSb = new StringBuilder("where 1 = 1");
//
// //编码
// String serialNumber = (String) parameter.get("serialNumber");
//
// //标题
// String title = (String) parameter.get("title");
// if (StringUtils.isNotBlank(serialNumber)) {
// conditionSb.append(" and " + "serial_number" + " like concat(concat('%','" + serialNumber + "'),'%')");
// }
// if (StringUtils.isNotBlank(title)) {
// conditionSb.append(" and " + "title" + " like concat(concat('%','" + title + "'),'%')");
// }
//
// conditionSb.append(" order by create_time desc");
//封装查询条件
String condition = getConditionStr(parameter);
int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
@@ -1989,13 +1972,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (Map.Entry<String, Object> entry : record1.entrySet()) {
treeDictItem(categoryList, entry, treeFieldList, (String) parameter.get("cut"));
if ("state".equals(entry.getKey())) {
List<OnlCgformField> onlCgformFieldList = fieldList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
//状态数据字典
List<SysDictItem> stateList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals("state"))
.collect(Collectors.toList());
List<SysDictItem> state = stateList.stream().filter(e -> e.getItemValue().equals(entry.getValue())).collect(Collectors.toList());
if (state.size() != 0) {
entry.setValue(state.get(0).getItemText());
if (onlCgformFieldList.size() != 0 && StringUtils.isNotBlank(onlCgformFieldList.get(0).getDictField())) {
List<SysDictItem> stateList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(onlCgformFieldList.get(0).getDictField()))
.collect(Collectors.toList());
List<SysDictItem> state = stateList.stream().filter(e -> e.getItemValue().equals(entry.getValue())).collect(Collectors.toList());
if (state.size() != 0) {
entry.setValue(state.get(0).getItemText());
}
}
}
}
@@ -2076,15 +2062,18 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (Map.Entry<String, Object> entry : record1.entrySet()) {
//状态数据字典
if ("state".equals(entry.getKey())) {
List<SysDictItem> stateList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals("state"))
.collect(Collectors.toList());
List<SysDictItem> state = stateList.stream().filter(e -> e.getItemValue().equals(entry.getValue())).collect(Collectors.toList());
if (state.size() != 0) {
if (CutEnum.CN.getValue().equals((String) parameter.get("cut"))) {
entry.setValue(state.get(0).getItemText());
} else {
entry.setValue(state.get(0).getEnName());
List<OnlCgformField> onlCgformFieldList = fieldList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
if (onlCgformFieldList.size() != 0 && StringUtils.isNotBlank(onlCgformFieldList.get(0).getDictField())) {
List<SysDictItem> stateList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(onlCgformFieldList.get(0).getDictField()))
.collect(Collectors.toList());
List<SysDictItem> state = stateList.stream().filter(e -> e.getItemValue().equals(entry.getValue())).collect(Collectors.toList());
if (state.size() != 0) {
if (CutEnum.CN.getValue().equals((String) parameter.get("cut"))) {
entry.setValue(state.get(0).getItemText());
} else {
entry.setValue(state.get(0).getEnName());
}
}
}
}
@@ -2118,11 +2107,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//转时间格式
for (String field : fieldListTemp) {
String fieldTemp = null;
if(fieldDateList.contains(field)){
if (fieldDateList.contains(field)) {
String fieldNew = "date_format(" + field + ", '%Y-%m-%d')";
fieldTemp = "case when " + fieldNew + " is null then \"\" else " + fieldNew + " end " + field;
fieldListNew.add(fieldTemp);
}else{
} else {
fieldTemp = "case when " + field + " is null then \"\" else " + field + " end " + field;
fieldListNew.add(fieldTemp);
}
@@ -2158,11 +2147,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
Map<String, Object> record1 = (Map) record;
idList.add((String) record1.get("id"));
for (Map.Entry<String, Object> entry : record1.entrySet()) {
List<OnlCgformField> collect = fieldList.stream()
.filter(e -> entry.getKey().equals(e.getDictField()) && !FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//下拉选处理数据字典
dictItem(sysDictItems, entry, collect, cut);
dictItem(sysDictItems, entry, cut, fieldList);
treeDictItem(categoryList, entry, treeFieldList, cut);
}
}
@@ -2193,7 +2179,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String fieldType = (String) map.get("field_show_type");//字段类型
if (FieldTypeEnum.TEXT_STRING.getValue().equals(fieldType)) {
//输入框 LIKE CONCAT("%", '/%', "%") ESCAPE '/'
if(value.contains("%")){
if (value.contains("%")) {
value = value.replace("%", "/%");
}
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%') ESCAPE '/'");
@@ -2289,39 +2275,44 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
*
* @param sysDictItems
* @param entry
* @param collect
*/
public void dictItem(List<SysDictItem> sysDictItems, Map.Entry<String, Object> entry, List<OnlCgformField> collect, String cut) {
Map<String, Object> map = new HashMap<>();
public void dictItem(List<SysDictItem> sysDictItems, Map.Entry<String, Object> entry, String cut, List<OnlCgformField> fieldList) {
//通过dictField判断字段是否为下拉选(不为空则为下拉选)
if (collect.size() != 0 && StringUtils.isNotBlank(collect.get(0).getDictField())) {
String value = (String) entry.getValue();
//数据字典中文
List<String> dictItemsCh = new ArrayList<>();
List<String> dictItemsEn = new ArrayList<>();
if (StringUtils.isNotBlank(value)) {
for (String itemValue : value.split(",")) {
//字段的数据字典
List<SysDictItem> dictItemList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(entry.getKey()))
.collect(Collectors.toList());
if (dictItemList.size() != 0) {
List<SysDictItem> dictItems = dictItemList.stream()
.filter(e -> itemValue.equals(e.getItemValue()))
List<OnlCgformField> onlCgformFieldList = fieldList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
//数据字典中文
List<String> dictItemsCh = new ArrayList<>();
List<String> dictItemsEn = new ArrayList<>();
for (OnlCgformField onlCgformField : onlCgformFieldList) {
if (FieldTypeEnum.PULL_SINGLE.getValue().equals(onlCgformField.getFieldShowType())
|| FieldTypeEnum.PULL_MORE.getValue().equals(onlCgformField.getFieldShowType())) {
String value = (String) entry.getValue();
if (StringUtils.isNotBlank(value) && onlCgformFieldList.size() != 0 && StringUtils.isNotBlank(onlCgformFieldList.get(0).getDictField())) {
for (String itemValue : value.split(",")) {
//字段的数据字典
List<SysDictItem> dictItemList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(onlCgformFieldList.get(0).getDictField()))
.collect(Collectors.toList());
if (dictItems.size() != 0) {
List<String> itemText = new ArrayList<>();
if (CutEnum.CN.getValue().equals(cut)) {
itemText = dictItems.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
} else {
itemText = dictItems.stream().map(SysDictItem::getEnName).collect(Collectors.toList());
if (dictItemList.size() != 0) {
List<SysDictItem> dictItems = dictItemList.stream()
.filter(e -> itemValue.equals(e.getItemValue()))
.collect(Collectors.toList());
if (dictItems.size() != 0) {
List<String> itemText = new ArrayList<>();
if (CutEnum.CN.getValue().equals(cut)) {
itemText = dictItems.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
} else {
itemText = dictItems.stream().map(SysDictItem::getEnName).collect(Collectors.toList());
}
dictItemsCh.addAll(itemText);
dictItemsEn.addAll(itemText);
}
dictItemsCh.addAll(itemText);
dictItemsEn.addAll(itemText);
}
}
}
}
}
if (onlCgformFieldList.size() != 0 && StringUtils.isNotBlank(onlCgformFieldList.get(0).getDictField())) {
if (CutEnum.CN.getValue().equals(cut)) {
entry.setValue(StringUtils.join(dictItemsCh, ","));
} else {
@@ -2515,13 +2506,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
}
String serialNumber = (String) data.get("serial_number");
if(serialNumber.contains("/")){
serialNumber = serialNumber.replace("/","-");
if (serialNumber.contains("/")) {
serialNumber = serialNumber.replace("/", "-");
}
//每一个编号下的所有的文件
if (valueList.size() != 0) {
List<OSSFile> fileInfosList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(valueList, ","));
if(fileInfosList.size() != 0){
if (fileInfosList.size() != 0) {
String fileNowPath = uploadpath + "/tempZip/" + serialNumber;
File file = new File(fileNowPath);
if (file.exists()) {
@@ -2642,11 +2633,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (Map<String, Object> data : datas) {
for (Map.Entry<String, Object> entry : data.entrySet()) {
List<OnlCgformField> collect = fieldList.stream()
.filter(e -> entry.getKey().equals(e.getDictField()) && !FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//下拉选处理数据字典
dictItem(sysDictItems, entry, collect, cut);
dictItem(sysDictItems, entry, cut, fieldList);
//处理树形数据字典
treeDictItem(categoryList, entry, treeFieldList, cut);
}
@@ -3038,7 +3026,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
// }
Set<String> allDepartIds = new HashSet<>();
//查询当前部门下所有部门
if(StringUtils.isNotEmpty(departIds)){
if (StringUtils.isNotEmpty(departIds)) {
String[] departIdArr = departIds.split(",");
for (String departId : departIdArr) {
List<String> subDepIdsByDepId = sysDepartService.getSubDepIdsByDepId(departId);
@@ -3411,7 +3399,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (itemNameList.contains(value)) {
String finalValue = value;
List<SysDictItem> collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(finalValue)).collect(Collectors.toList());
if(collect.size() != 0){
if (collect.size() != 0) {
value = collect.get(0).getItemValue();
}
}
@@ -3508,7 +3496,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
MultipartFile multipartFile =
new MockMultipartFile(nowFileList.get(0).getName(), nowFileList.get(0).getName(), "text/plain", input);
//文件存入文件表
OSSFile ossFile = iOSSFileService.uploadLocal(multipartFile, "",null);
OSSFile ossFile = iOSSFileService.uploadLocal(multipartFile, "", null);
if (ObjectUtils.isNotEmpty(ossFile)) {
sb.append(ossFile.getId() + ",");
}
@@ -1,6 +1,5 @@
package com.jero.modules.searchcenter.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -69,24 +68,24 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
public List<Map<String, Object>> queryCondition(String flag, String cut, String searchFlag) {
List<Map<String, Object>> mapList = iBussDocumentLibraryEOService.queryCondition(flag, cut, searchFlag);
//搜索条件手动添加正文
if("1".equals(searchFlag)){
if ("1".equals(searchFlag)) {
int index = -2;
for (Map<String, Object> objectMap : mapList) {
index ++;
if("中文标题".equals(objectMap.get("db_field_txt"))){
objectMap.put("db_field_txt","标题");
index++;
if ("中文标题".equals(objectMap.get("db_field_txt"))) {
objectMap.put("db_field_txt", "标题");
}
if("title_en".equals(objectMap.get("db_field_name"))){
index ++;
if ("title_en".equals(objectMap.get("db_field_name"))) {
index++;
}
}
//删除英文标题
mapList.remove(index);
//添加正文
Map<String,Object> map = new HashMap<>();
map.put("db_field_txt","正文");
map.put("field_show_type","1");
map.put("db_field_name","file_text");
Map<String, Object> map = new HashMap<>();
map.put("db_field_txt", "正文");
map.put("field_show_type", "1");
map.put("db_field_name", "file_text");
mapList.add(map);
}
//type = 0时,查询下拉,树形,日期等字段 type = 1时,查询输入框字段
@@ -100,11 +99,10 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
@Override
public IPage getInfoList(Map<String, Object> map) {
boolean flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.INDEX_NAME_DOCUMENT.getValue());
if(!flagTemp){
if (!flagTemp) {
return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString()));
}
//文档库所有的字段
@@ -155,17 +153,17 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> mapTwo = (Map<String, Object>) map.get("mapTwo");
JSONArray must = new JSONArray();
//处理首次查询条件
if(ObjectUtils.isNotEmpty(mapOne)){
if (ObjectUtils.isNotEmpty(mapOne)) {
queryCondition(mapOne, inputFieldList, otherFieldList, must);
}
//处理二次查询条件
if(ObjectUtils.isNotEmpty(mapTwo)){
if (ObjectUtils.isNotEmpty(mapTwo)) {
queryCondition(mapTwo, inputFieldList, otherFieldList, must);
}
//处理ids
JSONArray should = new JSONArray();
String ids = (String) mapTwo.get("ids");
if(StringUtils.isNotBlank(ids)){
if (StringUtils.isNotBlank(ids)) {
for (String s : ids.split(",")) {
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>();
@@ -196,20 +194,20 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
LambdaQueryWrapper<OnlCgformCollection> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(OnlCgformCollection::getDocumentId, mapTemp.get("id"));
List<OnlCgformCollection> collectList = iOnlCgformCollectionService.list(lambdaQueryWrapper);
if(collectList.size() > 0){
mapTemp.put("collectFlag","1");
}else{
mapTemp.put("collectFlag","0");
if (collectList.size() > 0) {
mapTemp.put("collectFlag", "1");
} else {
mapTemp.put("collectFlag", "0");
}
//处理订阅
LambdaQueryWrapper<OnlCgformSubscribe> lambdaQueryWrapperTemp = new LambdaQueryWrapper<>();
lambdaQueryWrapperTemp.in(OnlCgformSubscribe::getDocumentId, mapTemp.get("id"));
List<OnlCgformSubscribe> readList = iOnlCgformSubscribeService.list(lambdaQueryWrapperTemp);
if(readList.size() > 0){
mapTemp.put("subscribeFlag","1");
}else{
mapTemp.put("subscribeFlag","0");
if (readList.size() > 0) {
mapTemp.put("subscribeFlag", "1");
} else {
mapTemp.put("subscribeFlag", "0");
}
//格式化时间字段
@@ -222,7 +220,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
//下拉单选和下拉多选数据字典处理
if (fieldPullList.contains(entry.getKey())) {
bussDocumentLibraryEOService.dictItem(sysDictItems, entry, onlCgformFieldList, (String) map.get("cut"));
bussDocumentLibraryEOService.dictItem(sysDictItems, entry, (String) map.get("cut"), fieldList);
}
//处理文件
@@ -270,8 +268,8 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
if (ObjectUtils.isNotEmpty(inputMap)) {
for (Map.Entry<String, Object> entry : inputMap.entrySet()) {
String key = entry.getKey();
String value = (String )entry.getValue();
if(ObjectUtils.isNotEmpty(value)){
String value = (String) entry.getValue();
if (ObjectUtils.isNotEmpty(value)) {
for (String s : value.split(",")) {
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>();
@@ -287,7 +285,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
for (Map.Entry<String, Object> entry : otherMap.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
if(ObjectUtils.isNotEmpty(value)){
if (ObjectUtils.isNotEmpty(value)) {
for (String s : value.split(",")) {
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>();
@@ -459,7 +457,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
public IPage getFullTextInfoList(SearchVO searchVO) {
//判断索引是否存在
boolean flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH.getValue());
if(!flagTemp){
if (!flagTemp) {
return new Page(searchVO.getPage(), searchVO.getPageSize());
}
String selectValue = searchVO.getSelectValue();
@@ -475,7 +473,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
fieldList.add("file_name");
fieldList.add("id");
JSONArray queryMapJson = new JSONArray();
if(StringUtils.isNotBlank(selectValue)){
if (StringUtils.isNotBlank(selectValue)) {
for (String field : fieldList) {
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> map2 = new HashMap<>();
@@ -485,7 +483,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
}
//处理二次查询中选择了课表数据进行查询的情况
if(StringUtils.isNotBlank(searchVO.getIds())){
if (StringUtils.isNotBlank(searchVO.getIds())) {
for (String s : searchVO.getIds().split(",")) {
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>();
@@ -496,7 +494,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
Integer pageNo = searchVO.getPage();
Integer pageSize = searchVO.getPageSize();
IPage page = getiPage(selectValue, selectValueTwo, queryMapJson,null, pageNo, pageSize,null);
IPage page = getiPage(selectValue, selectValueTwo, queryMapJson, null, pageNo, pageSize, null);
return page;
@@ -504,12 +502,12 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
@NotNull
private IPage getiPage(String selectValue, String selectValueTwo, JSONArray queryMapJson,JSONArray should, Integer pageNo, Integer pageSize,String paragraphFlag) {
private IPage getiPage(String selectValue, String selectValueTwo, JSONArray queryMapJson, JSONArray should, Integer pageNo, Integer pageSize, String paragraphFlag) {
JSONObject jsonObject = new JSONObject();
//基础添加封装
if("paragraphFlag".equals(paragraphFlag)){
if ("paragraphFlag".equals(paragraphFlag)) {
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, should);
}else{
} else {
jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
}
//全部
@@ -523,13 +521,13 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
// 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(),
SearchEnum.FULL_TEXT_SEARCH.getValue(),
queryObject);
SearchEnum.FULL_TEXT_SEARCH.getValue(),
queryObject);
//全部的数据(调试接口用--最后删除即可)
JSONObject searchAll = jeroElasticsearchTemplate.search(SearchEnum.FULL_TEXT_SEARCH.getValue(),
SearchEnum.FULL_TEXT_SEARCH.getValue(),
new JSONObject());
SearchEnum.FULL_TEXT_SEARCH.getValue(),
new JSONObject());
List<Map<String, Object>> list = (List<Map<String, Object>>) (((Map) search.get("hits")).get("hits"));
@@ -569,9 +567,9 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
sb.append(String.valueOf(chStr));
}
entry.setValue(sb.toString());
}else{
} else {
//第二次搜索的时候file_text中不包含搜索条件的时候将file_text赋值空(此时展示拼接的内容)
if("file_text".equals(entry.getKey())){
if ("file_text".equals(entry.getKey())) {
entry.setValue("");
value = "";
}
@@ -579,7 +577,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
//如果内容中不包含第二次搜索条件,则继续高亮第一处
//判断value中是否包含首次搜索中的字符(因为其他的字段有可能包含二次的搜索条件查出来的这条数据,所以还得判断value中是否包含首次搜索中的字符)
boolean flagOne = judgeContains(value, selectValue);
if(flagOne){
if (flagOne) {
//如果包含第一次的搜索条件,先前后截取100字符后再高亮
value = getFileText(value, selectValue);
for (int i = 0; i < value.length(); i++) {
@@ -600,28 +598,28 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
//首次查询(没有输入查询条件)
mapList.add(mapSource);
//处理高亮module_type,title,serial_number,file_text(输入查询条件后,处理高亮字段)
if(StringUtils.isNotBlank(selectValue)){
if (StringUtils.isNotBlank(selectValue)) {
for (Map.Entry<String, Object> entry : mapSource.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
StringBuilder sb = new StringBuilder();
if (StringUtils.isNotBlank(value)) {
//file_text需要单独处理(截取第一处高亮的前后100个字符)
if("file_text".equals(key)){
if ("file_text".equals(key)) {
//判断value中是否包含搜索中的字符
boolean flag = judgeContains(value, selectValue);
if(flag){
if (flag) {
//截取第一处高亮的前后100个字符
value = getFileText(value, selectValue);
}else{
} else {
//第一次搜索的时候file_text中不包含搜索条件的时候将file_text赋值空(此时展示拼接的内容)
entry.setValue("");
value = "";
}
}
if("content".equals(key)){
if ("content".equals(key)) {
boolean flag = judgeContains(value, selectValue);
if(flag){
if (flag) {
//截取第一处高亮的前后100个字符
value = getFileText(value, selectValue);
}
@@ -634,7 +632,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
sb.append(String.valueOf(chStr));
}
}
if(ObjectUtils.isNotEmpty(sb)){
if (ObjectUtils.isNotEmpty(sb)) {
entry.setValue(sb.toString());
}
}
@@ -658,24 +656,24 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
return page;
}
private String getFileText(String fileTextInfo,String selectValue){
private String getFileText(String fileTextInfo, String selectValue) {
String beginStr = "";
String endStr = "";
for (int i = 0; i < fileTextInfo.length(); i++) {
String chStr = String.valueOf(fileTextInfo.charAt(i));
if(selectValue.contains(chStr)){
if(i >=100){
if (selectValue.contains(chStr)) {
if (i >= 100) {
int begin = i - 100;
beginStr = fileTextInfo.substring(begin, i);
int b=0;
}else{
int b = 0;
} else {
beginStr = fileTextInfo.substring(0, i);
}
int index = fileTextInfo.length() - i;
if(index<=100){
endStr = fileTextInfo.substring(i,fileTextInfo.length());
}else{
endStr = fileTextInfo.substring(i,i+100);
if (index <= 100) {
endStr = fileTextInfo.substring(i, fileTextInfo.length());
} else {
endStr = fileTextInfo.substring(i, i + 100);
}
break;
}
@@ -730,6 +728,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
/**
* 查询段落
*
* @param map
* @return
*/
@@ -738,7 +737,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
//module_type 代表文档库的段落
//判断索引是否存在
boolean flagTemp = jeroElasticsearchTemplate.indexExists(SearchEnum.FULL_TEXT_SEARCH.getValue());
if(!flagTemp){
if (!flagTemp) {
return new Page(Integer.parseInt(map.get("pageNo").toString()), Integer.parseInt(map.get("pageSize").toString()));
}
//文档库所有的字段
@@ -765,17 +764,17 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
Map<String, Object> mapTwo = (Map<String, Object>) map.get("mapTwo");
JSONArray must = new JSONArray();
//处理首次查询条件
if(ObjectUtils.isNotEmpty(mapOne)){
if (ObjectUtils.isNotEmpty(mapOne)) {
queryCondition(mapOne, inputFieldList, otherFieldList, must);
}
//处理二次查询条件
if(ObjectUtils.isNotEmpty(mapTwo)){
if (ObjectUtils.isNotEmpty(mapTwo)) {
queryCondition(mapTwo, inputFieldList, otherFieldList, must);
}
//处理ids
JSONArray should = new JSONArray();
String ids = (String) mapTwo.get("ids");
if(StringUtils.isNotBlank(ids)){
if (StringUtils.isNotBlank(ids)) {
for (String s : ids.split(",")) {
Map<String, Object> queryMap = new HashMap<>();
Map<String, Object> queryMapTemp = new HashMap<>();
@@ -792,15 +791,15 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
String selectValueTwo = "";
for (Map.Entry<String, Object> entry : mapOne.entrySet()) {
String key = entry.getKey();
String value = (String)entry.getValue();
if(inputFieldList.contains(key) && StringUtils.isNotBlank(value)){
String value = (String) entry.getValue();
if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) {
selectValue = value;
}
}
for (Map.Entry<String, Object> entry : mapTwo.entrySet()) {
String key = entry.getKey();
String value = (String)entry.getValue();
if(inputFieldList.contains(key) && StringUtils.isNotBlank(value)){
String value = (String) entry.getValue();
if (inputFieldList.contains(key) && StringUtils.isNotBlank(value)) {
selectValueTwo = value;
}
}
@@ -808,7 +807,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
String paragraphFlag = "paragraphFlag";
IPage iPage = getiPage(selectValue, selectValueTwo, must,should, pageNo, pageSize,paragraphFlag);
IPage iPage = getiPage(selectValue, selectValueTwo, must, should, pageNo, pageSize, paragraphFlag);
return iPage;
}