diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java index b5e9e41b..3b3fd063 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java @@ -56,6 +56,10 @@ public class DocumentSplitCommon { * <= */ public static final String LT = " <= "; + /** + * 翻译后缀 + */ + public static final String DIC_TEXT = "_dictText"; /** * 条目类型 TEXT:文本, IMG:图片, TABLE:表格, INTERPRETATION:解读 */ diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index 151bc13a..42cf0184 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -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> mapIPage = documentSplitMapper.queryDocumentSplitDetail(new Page<>(pageNo, pageSize), selectColumn, selectCondition); + // 翻译 + dicTranslate(mapIPage.getRecords(), fieldListSelect); + return mapIPage; + } + + private void dicTranslate(List> records, List fieldListSelect) { + // 单选树结构、多选树结构 + List treeTypeList = Arrays.asList(LawsFieldTypeEnum.TREE_BOX.getValue(), LawsFieldTypeEnum.TREE_BOX_SINGLE.getValue()); + List lawsTags = fieldListSelect.stream() + .filter(j -> FieldCommon.TYPE_DICT.contains(j.getFieldShowType())).collect(Collectors.toList()); + for (Map 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 treeTypeList, Map map, LawsTag lawsTag, String dbFieldName, SysDict sysDict) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .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 list = sysDictItemService.list(queryWrapper); + if(!list.isEmpty()){ + List itemTextList = list.stream().map(SysDictItem::getItemText).collect(Collectors.toList()); + map.put(dbFieldName + DocumentSplitCommon.DIC_TEXT, String.join(",", itemTextList)); + } } @Override