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 73b18b02..fb2f6413 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 @@ -483,25 +483,28 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { // 组织结构 List lawsTags2 = fieldListSelect.stream() .filter(j -> FieldCommon.GROUP.contains(j.getFieldShowType())).collect(Collectors.toList()); - + List sysDictList = sysDictService.list(); + List sysDictItemList = sysDictItemService.list(); + List sysDepartListAll = sysDepartService.list(); records.parallelStream().forEach(map->{ for (LawsTag lawsTag : lawsTags) { String dbFieldName = lawsTag.getDbFieldName(); if (map.containsKey(dbFieldName)){ // 字典查找 - SysDict sysDict = sysDictService.getById(lawsTag.getDictId()); - if (!Objects.isNull(sysDict)){ - setDicText(map, dbFieldName, sysDict); - } + Optional op = sysDictList.stream().filter(o->Objects.equals(o.getId(),lawsTag.getDictId())).findFirst(); + op.ifPresent(sysDict -> setDicText(map, dbFieldName, sysDict, sysDictItemList)); } } for (LawsTag lawsTag : lawsTags2) { String dbFieldName = lawsTag.getDbFieldName(); if (map.containsKey(dbFieldName)){ - List sysDepartList = - sysDepartService.listByIds(Arrays.asList(map.get(dbFieldName).toString().split(","))); - List itemTextList = sysDepartList.stream().map(SysDepart::getDepartName).collect(Collectors.toList()); - map.put(dbFieldName + DocumentSplitCommon.DIC_TEXT, String.join(",", itemTextList)); + if(!CollectionUtils.isEmpty(sysDepartListAll)){ + List sysDepartList = sysDepartListAll.stream().filter(o-> + Arrays.asList(map.get(dbFieldName).toString().split(",")).contains(o.getId())) + .collect(Collectors.toList()); + List itemTextList = sysDepartList.stream().map(SysDepart::getDepartName).collect(Collectors.toList()); + map.put(dbFieldName + DocumentSplitCommon.DIC_TEXT, String.join(",", itemTextList)); + } } } // 特殊翻译 @@ -531,12 +534,14 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { } } - private void setDicText(Map map, String dbFieldName, SysDict sysDict) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(SysDictItem::getDictId, sysDict.getId()) - .in(SysDictItem::getItemValue, Arrays.asList(map.get(dbFieldName).toString().split(","))); + private void setDicText(Map map, String dbFieldName, SysDict sysDict,List sysDictItemList) { + if(CollectionUtils.isEmpty(sysDictItemList)){ + return; + } // 字典值查询 - List list = sysDictItemService.list(queryWrapper); + List list = sysDictItemList.stream().filter(o->Objects.equals(sysDict.getId(),o.getDictId()) && + Arrays.asList(map.get(dbFieldName).toString().split(",")).contains(o.getItemValue())) + .collect(Collectors.toList()); if(!list.isEmpty()){ List itemTextList = list.stream().map(SysDictItem::getItemText).collect(Collectors.toList()); map.put(dbFieldName + DocumentSplitCommon.DIC_TEXT, String.join(",", itemTextList));