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

This commit is contained in:
zhn
2022-03-16 17:45:13 +08:00
parent ef6c01830e
commit 7b7b901182
@@ -237,7 +237,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//删除es
try {
for (String id : ids) {
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);
}
} catch (Exception e) {
log.error("文档库删除es失败");
@@ -267,35 +267,36 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/**
* 查询条件
*
* @param flag
* @param cut
* @param searchFlag 搜索中心标识 searchFlag = 0时,查询下拉,树形,日期等字段 type = 1时,查询输入框字段
* @return
*/
@Override
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<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if (fieldList.size() != 0) {
//过滤出搜索条件()
if(StringUtils.isNotBlank(searchFlag)){
if("1".equals(searchFlag)){
if (StringUtils.isNotBlank(searchFlag)) {
if ("1".equals(searchFlag)) {
//搜索中心输入框
fieldList = fieldList.stream()
.filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowSearch()))
&& (FieldTypeEnum.TEXT_STRING.getValue().equals(e.getFieldShowType()) || FieldTypeEnum.TEXT_NUMBER.getValue().equals(e.getFieldShowType())))
.collect(Collectors.toList());
}else{
} else {
//搜索中心下拉,树形,日期等字段
fieldList = fieldList.stream()
.filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowSearch()))
&& (FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType())//下拉单选
|| FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())//下拉多选
|| FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())//日期单选
|| FieldTypeEnum.DATE_MORE.getValue().equals(e.getFieldShowType())//日期多选
|| FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())))//树形
&& (FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType())//下拉单选
|| FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())//下拉多选
|| FieldTypeEnum.DATE_SINGLE.getValue().equals(e.getFieldShowType())//日期单选
|| FieldTypeEnum.DATE_MORE.getValue().equals(e.getFieldShowType())//日期多选
|| FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())))//树形
.collect(Collectors.toList());
}
}else{
} else {
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsQuery()))).collect(Collectors.toList());
}
@@ -327,19 +328,20 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/**
* 列表表头
*
* @param flag
* @param cut
* @param searchFlag 搜索中心列表表头(searchFlag=search时)
* @return
*/
@Override
public List<Map<String, Object>> getHeader(String flag, String cut,String searchFlag) {
public List<Map<String, Object>> getHeader(String flag, String cut, String searchFlag) {
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
if (fieldList.size() != 0) {
//过滤列表字段(is_show_list-->列表是否显示0否 1是)
if("search".equals(searchFlag)){
if ("search".equals(searchFlag)) {
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowSearch()))).collect(Collectors.toList());
}else{
} else {
fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList());
}
}
@@ -425,7 +427,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<Map<String, Object>> resultTemp = new ArrayList<>();
for (OnlCgformArea onlCgformAreaTemp : areaList) {
List<Map<String, Object>> result = new ArrayList<>();
Map<String,Object> mapTemp = new HashMap<>();
Map<String, Object> mapTemp = new HashMap<>();
String areaName = "";
if (CutEnum.CN.getValue().equals(cut)) {
areaName = onlCgformAreaTemp.getShowArea();
@@ -434,7 +436,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
for (OnlCgformField onlCgformField : fieldListTemp) {
if(onlCgformAreaTemp.getId().equals(onlCgformField.getShowArea())){
if (onlCgformAreaTemp.getId().equals(onlCgformField.getShowArea())) {
String dictId = onlCgformField.getDictId();
List<SysCategoryTreeVO> sysCategoryTreeVOList = new ArrayList<>();
if (StringUtils.isNotBlank(dictId)) {
@@ -447,7 +449,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
result.add(map);
}
}
mapTemp.put(onlCgformAreaTemp.getShowArea(),result);
mapTemp.put(onlCgformAreaTemp.getShowArea(), result);
resultTemp.add(mapTemp);
}
return resultTemp;
@@ -483,17 +485,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
correspondingStandardNameList.add((String) map.get("serial_number"));
} else {
boolean flag = isId(s);
if(!flag && !correspondingStandardNameList.contains(s)){
if (!flag && !correspondingStandardNameList.contains(s)) {
correspondingStandardNameList.add(s);
}
}
}
}else{
} else {
//处理已删除的文档的对应标准
if(StringUtils.isNotBlank(correspondingStandard)){
if (StringUtils.isNotBlank(correspondingStandard)) {
for (String s : correspondingStandard.split(",")) {
boolean flag = isId(s);
if(!flag && !correspondingStandardNameList.contains(s)){
if (!flag && !correspondingStandardNameList.contains(s)) {
correspondingStandardNameList.add(s);
}
}
@@ -506,17 +508,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
replaceStandardNameList.add((String) map.get("serial_number"));
} else {
boolean flag = isId(s);
if(!flag && !replaceStandardNameList.contains(s)){
if (!flag && !replaceStandardNameList.contains(s)) {
replaceStandardNameList.add(s);
}
}
}
}else{
} else {
//处理已删除的代替标准
if(StringUtils.isNotBlank(replaceStandardTemp)){
if (StringUtils.isNotBlank(replaceStandardTemp)) {
for (String s : replaceStandardTemp.split(",")) {
boolean flag = isId(s);
if(!flag && !replaceStandardNameList.contains(s)){
if (!flag && !replaceStandardNameList.contains(s)) {
replaceStandardNameList.add(s);
}
}
@@ -532,15 +534,15 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
//对应标准中文
// if (correspondingStandardNameList.size() != 0) {
dataList.get(0).put("corresponding_standard", StringUtils.join(correspondingStandardNameList, ","));
dataList.get(0).put("corresponding_standard_id", correspondingStandard);
dataList.get(0).put("corresponding_standard", StringUtils.join(correspondingStandardNameList, ","));
dataList.get(0).put("corresponding_standard_id", correspondingStandard);
// }
// if (replacedStandardNameList.size() != 0) {
dataList.get(0).put("replaced_standard", StringUtils.join(replacedStandardNameList, ","));
dataList.get(0).put("replaced_standard", StringUtils.join(replacedStandardNameList, ","));
// }
// if (replaceStandardNameList.size() != 0) {
dataList.get(0).put("replace_standard", StringUtils.join(replaceStandardNameList, ","));
dataList.get(0).put("replace_standard_id", replaceStandardTemp);
dataList.get(0).put("replace_standard", StringUtils.join(replaceStandardNameList, ","));
dataList.get(0).put("replace_standard_id", replaceStandardTemp);
// }
//代替标准中文
// String replaceStandard = (String) dataList.get(0).get("replace_standard");
@@ -580,7 +582,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//原始对应标准,代替标准,被代替标准(原始数据存的是iD)
String correspondingStandardId = "";
String replaceStandardId = "";//代替标准
if(dataList.size() != 0){
if (dataList.size() != 0) {
correspondingStandardId = (String) dataList.get(0).get("corresponding_standard");//对应标准
replaceStandardId = (String) dataList.get(0).get("replace_standard");//代替标准
}
@@ -600,21 +602,21 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//处理被代替标准和对应标准
for (Map<String, Object> map : mapList) {
Map<String,Object> stringObjectMap = new HashMap<>();
Map<String, Object> stringObjectMap = new HashMap<>();
//对应标准处理
if (StringUtils.isNotBlank(correspondingStandardId) && correspondingStandardId.contains((String) map.get("id"))) {
for (String s : correspondingStandardId.split(",")) {
Map<String, Object> mapTemp = new HashMap<>();
if(s.equals((String) map.get("id"))){
if (s.equals((String) map.get("id"))) {
correspondingStandardNameList.add((String) map.get("serial_number"));
mapTemp.put("title", (String) map.get("serial_number"));
mapTemp.put("id", (String) map.get("id"));
if (ObjectUtils.isNotEmpty(mapTemp)) {
listCorrespondingStandard.add(mapTemp);
}
}else{
} else {
boolean flag = isId(s);
if(!flag && !correspondingStandardNameList.contains(s)){
if (!flag && !correspondingStandardNameList.contains(s)) {
correspondingStandardNameList.add(s);
mapTemp.put("title", s);
mapTemp.put("id", "");
@@ -624,12 +626,12 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
}
}
}else{
if(StringUtils.isNotBlank(correspondingStandardId)){
} else {
if (StringUtils.isNotBlank(correspondingStandardId)) {
for (String s : correspondingStandardId.split(",")) {
Map<String, Object> mapTemp = new HashMap<>();
boolean flag = isId(s);
if(!flag && !correspondingStandardNameList.contains(s)){
if (!flag && !correspondingStandardNameList.contains(s)) {
correspondingStandardNameList.add(s);
mapTemp.put("title", s);
mapTemp.put("id", "");
@@ -645,16 +647,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (StringUtils.isNotBlank(replaceStandardId) && replaceStandardId.contains((String) map.get("id"))) {
for (String s : replaceStandardId.split(",")) {
Map<String, Object> mapTemp = new HashMap<>();
if(s.equals((String) map.get("id"))){
if (s.equals((String) map.get("id"))) {
replaceStandardNameList.add((String) map.get("serial_number"));
mapTemp.put("title", (String) map.get("serial_number"));
mapTemp.put("id", (String) map.get("id"));
if (ObjectUtils.isNotEmpty(mapTemp)) {
listReplaceStandard.add(mapTemp);
}
}else{
} else {
boolean flag = isId(s);
if(!flag && !replaceStandardNameList.contains(s)){
if (!flag && !replaceStandardNameList.contains(s)) {
replaceStandardNameList.add(s);
mapTemp.put("title", s);
mapTemp.put("id", "");
@@ -664,12 +666,12 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
}
}
}else{
if(StringUtils.isNotBlank(replaceStandardId)){
} else {
if (StringUtils.isNotBlank(replaceStandardId)) {
for (String s : replaceStandardId.split(",")) {
Map<String, Object> mapTemp = new HashMap<>();
boolean flag = isId(s);
if(!flag && !replaceStandardNameList.contains(s)){
if (!flag && !replaceStandardNameList.contains(s)) {
replaceStandardNameList.add(s);
mapTemp.put("title", s);
mapTemp.put("id", "");
@@ -772,14 +774,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (fileInfos.size() != 0) {
int i = 0;
for (OSSFile fileInfo : fileInfos) {
if(i==0){
if (i == 0) {
Map<String, Object> mapNew = new HashMap<>();
mapNew.put("value", fileInfo);
mapPut(cut, mapNew, "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, null);
mapNew.put("count",fileInfos.size());
mapNew.put("count", fileInfos.size());
resultTemp.add(mapNew);
i++;
}else{
} else {
Map<String, Object> mapNew = new HashMap<>();
mapNew.put("value", fileInfo);
mapPut(cut, mapNew, "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, null);
@@ -790,7 +792,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} else if (fileInfos.size() == 1) {
//单个文件处理
Map<String, Object> mapNew = new HashMap<>();
mapNew.put("count",fileInfos.size());
mapNew.put("count", fileInfos.size());
mapNew.put("value", fileInfos.get(0));
mapPut(cut, mapNew, "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, null);
resultTemp.add(mapNew);
@@ -898,13 +900,15 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
map.remove("corresponding_standard_id");
//字段属性
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> fieldPullList = fieldList.stream()
.filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType())
|| FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
//普通数据字典
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 idTemp = UUID.randomUUID().toString().replace("-", "");
@@ -913,48 +917,56 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
StringBuilder fieldsBuilder = new StringBuilder();
//数据值
StringBuilder valuesBuilder = new StringBuilder();
for (Map.Entry<String, Object> entry : map.entrySet())
try {
{
String key = entry.getKey();
Object value = entry.getValue();
//处理发布日期,标准实施日期
if ("issue_time".equals(key) || "implement_time".equals(key)) {
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 {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
//es全文新增数据(数据转换)
esFullText(cut, fieldList, categoryList, dictItemList, mapList, sb, entry);
//处理发布日期,标准实施日期
if ("issue_time".equals(key) || "implement_time".equals(key)) {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (ObjectUtils.isNotEmpty(value)) {
value = "str_to_date('" + value + "','%Y-%m-%d')";
if (ObjectUtils.isNotEmpty(value)) {
value = "str_to_date('" + value + "','%Y-%m-%d')";
}
valuesBuilder.append("," + value);
} else {
//处理文件类型
List<OnlCgformField> fieldFile = null;
try {
fieldFile = fieldFileList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
} catch (Exception e) {
e.printStackTrace();
}
if (fieldFile.size() != 0 && ObjectUtils.isNotEmpty(value)) {
String valueTemp = UUID.randomUUID().toString().replace("-", "");
// value = valueTemp;
//修改文件表关联信息connect_id
List<OSSFile> oSSFileList = new ArrayList<>();
for (String fileId : value.toString().split(",")) {
OSSFile ossFile = new OSSFile();
ossFile.setId(fileId);
ossFile.setConnectId(valueTemp);
oSSFileList.add(ossFile);
}
valuesBuilder.append("," + value);
iOSSFileService.updateFileInfo(oSSFileList);
valuesBuilder.append("," + "'" + valueTemp + "'");
} else {
//处理文件类型
List<OnlCgformField> fieldFile = null;
try {
fieldFile = fieldFileList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
} catch (Exception e) {
e.printStackTrace();
}
if (fieldFile.size() != 0 && ObjectUtils.isNotEmpty(value)) {
String valueTemp = UUID.randomUUID().toString().replace("-", "");
// value = valueTemp;
//修改文件表关联信息connect_id
List<OSSFile> oSSFileList = new ArrayList<>();
for (String fileId : value.toString().split(",")) {
OSSFile ossFile = new OSSFile();
ossFile.setId(fileId);
ossFile.setConnectId(valueTemp);
oSSFileList.add(ossFile);
}
iOSSFileService.updateFileInfo(oSSFileList);
valuesBuilder.append("," + "'" + valueTemp + "'");
} else {
valuesBuilder.append("," + "'" + value + "'");
}
valuesBuilder.append("," + "'" + value + "'");
}
fieldsBuilder.append("," + key);
}
} catch (Exception e) {
e.printStackTrace();
fieldsBuilder.append("," + key);
}
} catch (Exception e) {
e.printStackTrace();
}
mapFullText.put("content", sb.toString());
String insertField = mustFields + fieldsBuilder.toString();
String insertValue = mustValues + valuesBuilder.toString();
bussDocumentLibraryEOMapper.insertInfo(insertField, insertValue);
@@ -967,22 +979,140 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//向订阅该领域管理的人发消息
sendMsg(map, idTemp);
//添加es
map.put("id",idTemp);
map.put("id", idTemp);
map.put("module_type", "文档库");
String json = JSON.toJSONString(map);
JSONObject jsonObject = JSON.parseObject(json);
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);
} catch (Exception e) {
log.error("文档库添加es失败");
}
}
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) {
Map<String, Object> mapTemp = new HashMap<>();
mapTemp.put("domainId", map.get("technology_territory"));
mapTemp.put("documentId", "");
List<String> userIdList = domainUserRelService.queryDomainUserRelInfo(mapTemp);
if(userIdList.size() != 0){
if (userIdList.size() != 0) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String title = (String) map.get("title");
String serialNumber = (String) map.get("serial_number");
@@ -1061,13 +1191,28 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//处理修改代替标准,发送通知
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 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()) {
String key = entry.getKey();
Object value = entry.getValue();
//es全文新增数据(数据转换)
esFullText(cut, fieldList, categoryList, dictItemList, listMap, sb, entry);
if (ObjectUtils.isNotEmpty(value)) {
//处理修改人和修改时间
if ("update_by".equals(key)) {
@@ -1132,6 +1277,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
fieldsBuilder.append(key + ",");
}
}
mapFullText.put("content", sb.toString());
String insertField = fieldsBuilder.substring(0, fieldsBuilder.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.insertInfo(insertField, insertValue);
map.put("module_type", "文档库");
String json = JSON.toJSONString(map);//map转String
JSONObject jsonObject = JSON.parseObject(json);
//修改es
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) {
log.error("文档库编辑es失败");
}
@@ -1385,7 +1534,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
"&title:" + title +
"&serial_number:" + serialNumber + "'" + " target='_blank'>" + serialNumber + "</a>";
if(StringUtils.isNotBlank(sbStr.toString())){
if (StringUtils.isNotBlank(sbStr.toString())) {
String content = sysUser.getRealname() + "" + serialNumber + "进行了修改请及时查看";
String contentInfo = sysUser.getRealname() + "修改标准" + href + "" + sbStr.toString();
//封装消息的实体类
@@ -1708,7 +1857,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
//过滤查询条件字段类型使用
List<Map<String, Object>> mapList = queryCondition("1", null,null);
List<Map<String, Object>> mapList = queryCondition("1", null, null);
//查询条件处理
for (Map.Entry<String, Object> entry : parameter.entrySet()) {
@@ -2581,17 +2730,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
//飞书
try {
iFeishuService.batchSendMessage(new String[userIdList.size()],content,null,null);
iFeishuService.batchSendMessage(new String[userIdList.size()], content, null, null);
} catch (IOException e) {
log.error("飞书推送失败");
}
sendWebsocket(documentIds,content);
sendWebsocket(documentIds, content);
return "推送成功";
}
/**
*
* 属性字典处理中文
*
* @param categoryList
@@ -2877,7 +3025,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());
List<SysDictItem> collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(finalValue)).collect(Collectors.toList());
value = collect.get(0).getItemValue();
}
@@ -2907,7 +3055,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (StringUtils.isNotBlank(value)) {
for (String valueTemp : value.split(",")) {
if (itemNameList.contains(valueTemp)) {
List<SysDictItem> collect = dictItemList.stream().filter(e ->StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(valueTemp)).collect(Collectors.toList());
List<SysDictItem> collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(valueTemp)).collect(Collectors.toList());
valueId += collect.get(0).getItemValue() + ",";
}
}
@@ -3098,14 +3246,15 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/**
* 验证字符串是不是id
*
* @param s
* @return
*/
public boolean isId(String s){
if(StringUtils.isBlank(s)){
public boolean isId(String s) {
if (StringUtils.isBlank(s)) {
return false;
}
if(s.length() ==32){
if (s.length() == 32) {
String sub1 = s.substring(0, 8);
String sub2 = s.substring(8, 12);
String sub3 = s.substring(12, 16);
@@ -3118,27 +3267,27 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} catch (Exception e) {
return false;
}
}else{
} else {
return false;
}
}
public String verifyBind(List<String> ids){
public String verifyBind(List<String> ids) {
//判断删除的数据是否被其他文档引用
StringBuilder condition = new StringBuilder();
for (String id : ids) {
condition.append(" corresponding_standard like concat(concat('%','" + id + "'),'%') or replace_standard like concat(concat('%','" + id + "'),'%') or" );
condition.append(" corresponding_standard like concat(concat('%','" + id + "'),'%') or replace_standard like concat(concat('%','" + id + "'),'%') or");
}
String conditionStr = condition.substring(0, condition.length() - 2);
List<Map<String, Object>> listInfo = bussDocumentLibraryEOMapper.getListInfo(conditionStr);
List<String> serialNumbers = new ArrayList<>();
if(listInfo.size() != 0){
if (listInfo.size() != 0) {
for (Map<String, Object> map : listInfo) {
serialNumbers.add((String) map.get("serial_number"));
}
}
if(serialNumbers.size() != 0){
return StringUtils.join(serialNumbers,",")+"已被其他文档绑定,是否要删除";
if (serialNumbers.size() != 0) {
return StringUtils.join(serialNumbers, ",") + "已被其他文档绑定,是否要删除";
}
return null;
}