文档库--数据字典

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