fix(文档拆分): 字典翻译
This commit is contained in:
+4
@@ -56,6 +56,10 @@ public class DocumentSplitCommon {
|
||||
* <=
|
||||
*/
|
||||
public static final String LT = " <= ";
|
||||
/**
|
||||
* 翻译后缀
|
||||
*/
|
||||
public static final String DIC_TEXT = "_dictText";
|
||||
/**
|
||||
* 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读
|
||||
*/
|
||||
|
||||
+53
-2
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.laws.documenttool.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@@ -11,6 +12,7 @@ import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
|
||||
import com.jero.modules.laws.documenttool.entity.DocumentSplitInfo;
|
||||
@@ -29,6 +31,10 @@ import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
|
||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
||||
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
|
||||
import com.jero.modules.split.service.impl.FileSpiltService;
|
||||
import com.jero.modules.system.entity.SysDict;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.service.ISysDictItemService;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import com.jero.modules.tag.entity.LawsTag;
|
||||
import com.jero.modules.tag.enums.LawsFieldTypeEnum;
|
||||
import com.jero.modules.tag.enums.TableNameEnum;
|
||||
@@ -69,6 +75,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
private final ISarFileSplitMenuEOService sarFileSplitMenuEOService;
|
||||
private final LawsDocumentSplitMapper lawsDocumentSplitMapper;
|
||||
private final SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper;
|
||||
private final ISysDictService sysDictService;
|
||||
private final ISysDictItemService sysDictItemService;
|
||||
private static final String INFO_ID = "info_id";
|
||||
private static final String ID = "id";
|
||||
private static final String IDS = "ids";
|
||||
@@ -84,7 +92,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
FileSpiltService fileSpiltService,
|
||||
ISarFileSplitMenuEOService sarFileSplitMenuEOService,
|
||||
LawsDocumentSplitMapper lawsDocumentSplitMapper,
|
||||
SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper) {
|
||||
SarFileSplitItemsValEOMapper sarFileSplitItemsValEOMapper,
|
||||
ISysDictService sysDictService,
|
||||
ISysDictItemService sysDictItemService) {
|
||||
this.documentSplitMapper = documentSplitMapper;
|
||||
this.sarFileSplitInfoService = sarFileSplitInfoService;
|
||||
this.lawsCommonMapper = lawsCommonMapper;
|
||||
@@ -92,6 +102,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
this.sarFileSplitMenuEOService = sarFileSplitMenuEOService;
|
||||
this.lawsDocumentSplitMapper = lawsDocumentSplitMapper;
|
||||
this.sarFileSplitItemsValEOMapper = sarFileSplitItemsValEOMapper;
|
||||
this.sysDictService = sysDictService;
|
||||
this.sysDictItemService = sysDictItemService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -146,7 +158,46 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
String selectCondition = getSelectCondition(parameter, fieldListCondition);
|
||||
|
||||
// 查询数据
|
||||
return documentSplitMapper.queryDocumentSplitDetail(new Page<>(pageNo, pageSize), selectColumn, selectCondition);
|
||||
IPage<Map<String, Object>> mapIPage = documentSplitMapper.queryDocumentSplitDetail(new Page<>(pageNo, pageSize), selectColumn, selectCondition);
|
||||
// 翻译
|
||||
dicTranslate(mapIPage.getRecords(), fieldListSelect);
|
||||
return mapIPage;
|
||||
}
|
||||
|
||||
private void dicTranslate(List<Map<String, Object>> records, List<LawsTag> fieldListSelect) {
|
||||
// 单选树结构、多选树结构
|
||||
List<String> treeTypeList = Arrays.asList(LawsFieldTypeEnum.TREE_BOX.getValue(), LawsFieldTypeEnum.TREE_BOX_SINGLE.getValue());
|
||||
List<LawsTag> lawsTags = fieldListSelect.stream()
|
||||
.filter(j -> FieldCommon.TYPE_DICT.contains(j.getFieldShowType())).collect(Collectors.toList());
|
||||
for (Map<String, Object> map : records) {
|
||||
for (LawsTag lawsTag : lawsTags) {
|
||||
String dbFieldName = lawsTag.getDbFieldName();
|
||||
if (map.containsKey(dbFieldName)){
|
||||
// 字典查找
|
||||
SysDict sysDict = sysDictService.getById(lawsTag.getDictId());
|
||||
if (!Objects.isNull(sysDict)){
|
||||
setDicText(treeTypeList, map, lawsTag, dbFieldName, sysDict);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setDicText(List<String> treeTypeList, Map<String, Object> map, LawsTag lawsTag, String dbFieldName, SysDict sysDict) {
|
||||
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<SysDictItem>()
|
||||
.eq(SysDictItem::getDictId, sysDict.getId());
|
||||
// 树结构查询dic_id
|
||||
if (treeTypeList.contains(lawsTag.getFieldShowType())){
|
||||
queryWrapper.in(SysDictItem::getId, Arrays.asList(map.get(dbFieldName).toString().split(",")));
|
||||
}else {
|
||||
queryWrapper.in(SysDictItem::getItemValue, Arrays.asList(map.get(dbFieldName).toString().split(",")));
|
||||
}
|
||||
// 字典值查询
|
||||
List<SysDictItem> list = sysDictItemService.list(queryWrapper);
|
||||
if(!list.isEmpty()){
|
||||
List<String> itemTextList = list.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
|
||||
map.put(dbFieldName + DocumentSplitCommon.DIC_TEXT, String.join(",", itemTextList));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user