文档库--技术领域转中文处理

This commit is contained in:
zhn
2022-03-04 19:49:15 +08:00
parent f6d74dc191
commit cd484d2170
@@ -30,6 +30,7 @@ import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.service.IOnlCgformSubscribeService;
import com.jero.modules.system.entity.SysAnnouncement;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysCategoryTreeVO;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
@@ -372,6 +373,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
dataList.get(0).put("replace_standard_id", replaceStandard);
}
}
if(StringUtils.isNotBlank((String)dataList.get(0).get("technology_territory"))){
String technologyTerritory = (String) dataList.get(0).get("technology_territory");
dataList.get(0).put("technology_territory",Arrays.asList(technologyTerritory.split(",")));
}
return dataList;
}
@@ -451,12 +456,25 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
.filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType())
|| FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//过滤出树形字段
List<OnlCgformField> treeFieldList = fieldList.stream()
.filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//下拉选字段
List<String> fieldPullList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
//数据字典
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
//处理树形数据字典
dataList.get(0).entrySet().forEach(entry -> {
//下拉选处理数据字典
treeDictItem(categoryList, entry, treeFieldList,cut);
});
//下拉单选和下拉多选数据字典处理
dataList.get(0).entrySet().forEach(entry -> {
if (fieldPullList.contains(entry.getKey())) {
@@ -1712,6 +1730,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
//文件字段
List<OnlCgformField> fileFieldList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
//过滤出树形字段
List<OnlCgformField> treeFieldList = fieldList.stream()
.filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//过滤出所有文件字段对应的connect_id
List<String> connectIdList = new ArrayList<>();
for (Map<String, Object> data : datas) {
@@ -1727,17 +1749,23 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (connectIdList.size() != 0) {
fileInfos = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectIdList, ","));
}
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
int i = 0;
for (Map<String, Object> data : datas) {
for (Map.Entry<String, Object> entry : data.entrySet()) {
List<OnlCgformField> collect = fieldList.stream()
.filter(e -> entry.getKey().equals(e.getDictField()))
.filter(e -> entry.getKey().equals(e.getDictField()) && !FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
//下拉选处理数据字典
dictItem(sysDictItems, entry, collect,cut);
//处理树形数据字典
treeDictItem(categoryList, entry, treeFieldList,cut);
}
Row row = sheet.createRow(i + 1);
i++;
int sheetNum = 0;
@@ -2145,6 +2173,31 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
return "推送成功" ;
}
/**
* 属性字典处理中文
* @param categoryList
* @param entry
* @param treeFieldList
* @param cut
*/
private void treeDictItem(List<SysCategory> categoryList ,Map.Entry<String, Object> entry,List<OnlCgformField> treeFieldList,String cut){
List<String> treeFields = treeFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
String key = entry.getKey();
if(treeFields.contains(entry.getKey())){
String value = (String) entry.getValue();
if(StringUtils.isNotBlank(value)){
List<String> idList = Arrays.asList(value.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)){
entry.setValue(StringUtils.join(nameList,","));
}else{
entry.setValue(StringUtils.join(nameEnList,","));
}
}
}
}
}