文档库--新增和编辑时封装es查询全部的数据

This commit is contained in:
zhn
2022-03-16 17:45:13 +08:00
parent ef6c01830e
commit 7b7b901182
@@ -267,6 +267,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/** /**
* 查询条件 * 查询条件
*
* @param flag * @param flag
* @param cut * @param cut
* @param searchFlag 搜索中心标识 searchFlag = 0时,查询下拉,树形,日期等字段 type = 1时,查询输入框字段 * @param searchFlag 搜索中心标识 searchFlag = 0时,查询下拉,树形,日期等字段 type = 1时,查询输入框字段
@@ -327,6 +328,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/** /**
* 列表表头 * 列表表头
*
* @param flag * @param flag
* @param cut * @param cut
* @param searchFlag 搜索中心列表表头(searchFlag=search时) * @param searchFlag 搜索中心列表表头(searchFlag=search时)
@@ -898,13 +900,15 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
map.remove("corresponding_standard_id"); map.remove("corresponding_standard_id");
//字段属性 //字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue()); List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//时间类型字段
//文件类型字段 //文件类型字段
List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); List<OnlCgformField> fieldFileList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
//下拉单选或下拉多选 //树形数据字典
List<OnlCgformField> fieldPullList = fieldList.stream() List<SysCategory> categoryList = sysCategoryService.list();
.filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType()) //普通数据字典
|| FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsAll();
//查询所有文档库信息
//查询所有
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(null);
String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code"; String mustFields = "id,create_by,create_time,update_by,update_time,sys_org_code";
String idTemp = UUID.randomUUID().toString().replace("-", ""); String idTemp = UUID.randomUUID().toString().replace("-", "");
@@ -913,11 +917,18 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
StringBuilder fieldsBuilder = new StringBuilder(); StringBuilder fieldsBuilder = new StringBuilder();
//数据值 //数据值
StringBuilder valuesBuilder = new StringBuilder(); StringBuilder valuesBuilder = new StringBuilder();
for (Map.Entry<String, Object> entry : map.entrySet()) Map<String,Object> mapFullText = new HashMap<>();
mapFullText.put("module_type", "文档库");
mapFullText.put("serial_number", map.get("serial_number"));
mapFullText.put("title", map.get("title"));
StringBuilder sb = new StringBuilder();
try { try {
{ for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey(); String key = entry.getKey();
Object value = entry.getValue(); Object value = entry.getValue();
//es全文新增数据(数据转换)
esFullText(cut, fieldList, categoryList, dictItemList, mapList, sb, entry);
//处理发布日期,标准实施日期 //处理发布日期,标准实施日期
if ("issue_time".equals(key) || "implement_time".equals(key)) { if ("issue_time".equals(key) || "implement_time".equals(key)) {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -955,6 +966,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
mapFullText.put("content", sb.toString());
String insertField = mustFields + fieldsBuilder.toString(); String insertField = mustFields + fieldsBuilder.toString();
String insertValue = mustValues + valuesBuilder.toString(); String insertValue = mustValues + valuesBuilder.toString();
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue); bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
@@ -968,6 +980,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
sendMsg(map, idTemp); sendMsg(map, idTemp);
//添加es //添加es
map.put("id", idTemp); map.put("id", idTemp);
map.put("module_type", "文档库");
String json = JSON.toJSONString(map); String json = JSON.toJSONString(map);
JSONObject jsonObject = JSON.parseObject(json); JSONObject jsonObject = JSON.parseObject(json);
try { try {
@@ -977,6 +990,123 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} }
} }
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) {
for (OnlCgformField onlCgformField : fieldList) {
//输入框
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()+" ");
}
}
//下拉框
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()+",");
}
}
}
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{
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());
List<String> nameList = sysCategoryList.stream().map(SysCategory::getName).collect(Collectors.toList());
List<String> nameEnList = sysCategoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList());
if (CutEnum.CN.getValue().equals(cut)) {
sbTree.append(StringUtils.join(nameList, ","));
} else {
sbTree.append(StringUtils.join(nameEnList, ","));
}
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.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())){
//被代替标准
for (Map<String, Object> stringObjectMap : mapList) {
String replaceStandard = (String) stringObjectMap.get("replace_standard");
if(replaceStandard.contains((String)entry.getValue())){
standSb.append(stringObjectMap.get("serial_number")+",");
}
}
}else{
//对应标准,代替标准
for (String valueTemp : entry.getValue().toString().split(",")) {
if(isId(valueTemp)){
//是id
for (Map<String, Object> stringObjectMap : mapList) {
if(stringObjectMap.get("id").equals(valueTemp)){
standSb.append(stringObjectMap.get("serial_number")+",");
}
}
}else{
//不是id
standSb.append(valueTemp+",");
}
}
}
String substring = standSb.substring(0, standSb.length() - 1);
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{
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,",")+" ");
}
}
}
}
private void sendMsg(Map<String, Object> map, String idTemp) { private void sendMsg(Map<String, Object> map, String idTemp) {
Map<String, Object> mapTemp = new HashMap<>(); Map<String, Object> mapTemp = new HashMap<>();
mapTemp.put("domainId", map.get("technology_territory")); mapTemp.put("domainId", map.get("technology_territory"));
@@ -1061,13 +1191,28 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//处理修改代替标准,发送通知 //处理修改代替标准,发送通知
sendMessageUpdate(mapTemp, dataListTemp, fieldList, fieldDateList, fieldFileList, fieldPullList, cut); sendMessageUpdate(mapTemp, dataListTemp, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
//普通数据字典
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsAll();
//查询所有
List<Map<String, Object>> listMap = bussDocumentLibraryEOMapper.selectMapsAll(null);
//字段 //字段
StringBuilder fieldsBuilder = new StringBuilder(); StringBuilder fieldsBuilder = new StringBuilder();
//数据值 //数据值
StringBuilder valuesBuilder = new StringBuilder(); StringBuilder valuesBuilder = new StringBuilder();
StringBuilder sb = new StringBuilder();
Map<String,Object> mapFullText = new HashMap<>();
mapFullText.put("module_type", "文档库");
mapFullText.put("serial_number", map.get("serial_number"));
mapFullText.put("title", map.get("title"));
for (Map.Entry<String, Object> entry : map.entrySet()) { for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey(); String key = entry.getKey();
Object value = entry.getValue(); Object value = entry.getValue();
//es全文新增数据(数据转换)
esFullText(cut, fieldList, categoryList, dictItemList, listMap, sb, entry);
if (ObjectUtils.isNotEmpty(value)) { if (ObjectUtils.isNotEmpty(value)) {
//处理修改人和修改时间 //处理修改人和修改时间
if ("update_by".equals(key)) { if ("update_by".equals(key)) {
@@ -1132,6 +1277,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
fieldsBuilder.append(key + ","); fieldsBuilder.append(key + ",");
} }
} }
mapFullText.put("content", sb.toString());
String insertField = fieldsBuilder.substring(0, fieldsBuilder.length() - 1); String insertField = fieldsBuilder.substring(0, fieldsBuilder.length() - 1);
String insertValue = valuesBuilder.substring(0, valuesBuilder.length() - 1); String insertValue = valuesBuilder.substring(0, valuesBuilder.length() - 1);
@@ -1153,11 +1299,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//删除文档库数据 //删除文档库数据
bussDocumentLibraryEOMapper.deleteById((String) map.get("id")); bussDocumentLibraryEOMapper.deleteById((String) map.get("id"));
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue); bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
map.put("module_type", "文档库");
String json = JSON.toJSONString(map);//map转String String json = JSON.toJSONString(map);//map转String
JSONObject jsonObject = JSON.parseObject(json); JSONObject jsonObject = JSON.parseObject(json);
//修改es //修改es
try { try {
jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), (String) map.get("id"), jsonObject); jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), (String) map.get("id"), jsonObject);
//添加全文
} catch (Exception e) { } catch (Exception e) {
log.error("文档库编辑es失败"); log.error("文档库编辑es失败");
} }
@@ -2591,7 +2740,6 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/** /**
*
* 属性字典处理中文 * 属性字典处理中文
* *
* @param categoryList * @param categoryList
@@ -3098,6 +3246,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/** /**
* 验证字符串是不是id * 验证字符串是不是id
*
* @param s * @param s
* @return * @return
*/ */