From c7672f0f6dd4b3e033dba38fddcf3444c5105374 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 27 Apr 2022 15:14:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E9=AB=98=E5=8F=AF=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IcResiUserExportServiceImpl.java | 68 ++++++++++--------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java index ed792de92a..8547061def 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java @@ -174,7 +174,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { String tableName = sqlColumn.getTableName(); String itemId = sqlColumn.getItemId(); String columnName = columnDTO.getColumnName(); - if (hiddenColumnSet.contains(columnName)){ + if (hiddenColumnSet.contains(columnName)) { return; } String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString(); @@ -268,39 +268,41 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { String cacheValue = cache.getIfPresent(vauleStr); if (StringUtils.isNotBlank(cacheValue)) { map.put(columnName, cacheValue); - } else { - String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue()); - - if (FormItemTypeEnum.CASCADER.getCode().equals(e.getItemType())) { - Map remoteOptionMap = icResiUserImportService.listRemoteCascadeOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); - List listOptions = new ArrayList<>(); - String[] split = vauleStr.split(StrConstant.COMMA); - Arrays.stream(split).forEach((value) -> { - //todo 看看怎么更好的利用本地缓存 - OptionResultDTO optionResultDTO = remoteOptionMap.get(value); - if (optionResultDTO != null) { - listOptions.add(optionResultDTO.getLabel()); - } - }); - String join = Joiner.on("-").join(listOptions); - cache.put(vauleStr, join); - map.put(columnName, join); - } else { - //todo 不支持多个itemId - Map remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); - if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) { - remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? StrConstant.YES : StrConstant.NO)); - } else if (FormItemTypeEnum.SELECT.getCode().equals(e.getItemType())) { - remoteOptions.forEach((label, value) -> { - if (vauleStr.equals(value)) { - map.put(columnName, label); - } - //放if外面是为了下次取得时候 可以有值 - cache.put(value, label); - }); - } - } + return; + } + String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue()); + //如果是级联的 则调用级联获取接口 根据原始值逗号隔开的 赋值 + if (FormItemTypeEnum.CASCADER.getCode().equals(e.getItemType())) { + Map remoteOptionMap = icResiUserImportService.listRemoteCascadeOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); + List listOptions = new ArrayList<>(); + String[] split = vauleStr.split(StrConstant.COMMA); + Arrays.stream(split).forEach((value) -> { + //todo 看看怎么更好的利用本地缓存 + OptionResultDTO optionResultDTO = remoteOptionMap.get(value); + if (optionResultDTO != null) { + listOptions.add(optionResultDTO.getLabel()); + } + }); + String join = Joiner.on("-").join(listOptions); + cache.put(vauleStr, join); + map.put(columnName, join); + return; + } + //todo 不支持多个itemId + Map remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); + if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) { + remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? StrConstant.YES : StrConstant.NO)); + return; + } + if (FormItemTypeEnum.SELECT.getCode().equals(e.getItemType())) { + remoteOptions.forEach((label, value) -> { + if (vauleStr.equals(value)) { + map.put(columnName, label); + } + //放if外面是为了下次取得时候 可以有值 + cache.put(value, label); + }); } } catch (Exception ex) { log.warn("listRemoteOptions url", ex);