diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java index e35eabdace..ada878c1be 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java @@ -1,5 +1,6 @@ package com.epmet.service; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.dto.result.FormItemResult; import com.epmet.service.impl.IcResiUserImportServiceImpl; @@ -51,4 +52,15 @@ public interface IcResiUserImportService { * @return */ Map listRemoteOptions(String pureUri, String cascadeItemId, Map columnWrappers, String currUserAgencyId, String purpose); + + /** + * desc:获取级联的远程 选项 + * @param part + * @param part1 + * @param columnWrappers + * @param currentStaffAgencyId + * @param query + * @return + */ + Map listRemoteCascadeOptions(String part, String part1, Map columnWrappers, String currentStaffAgencyId, String query); } 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 d4370edeb0..173da5d335 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 @@ -12,6 +12,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.IcExportTemplateSaveFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.enums.FormItemTypeEnum; import com.epmet.commons.tools.enums.IcFormCodeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -267,20 +268,35 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { } else { String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue()); - //todo 不支持多个itemId - Map remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); - log.info("========putRemoteValue:条件:{}", JSON.toJSONString(columnWrappers)); - log.info("========putRemoteValue:结果:{}", JSON.toJSONString(remoteOptions)); - 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 (FormItemTypeEnum.CASCADER.getCode().equals(e.getItemType())) { + Map remoteOptions = icResiUserImportService.listRemoteCascadeOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); + List listOptions = new ArrayList<>(); + remoteOptions.forEach((value,label) -> { if (vauleStr.equals(value)) { - map.put(columnName, label); + listOptions.add(label.getLabel()); } - cache.put(value,label); }); + 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"); + log.info("========putRemoteValue:条件:{}", JSON.toJSONString(columnWrappers)); + log.info("========putRemoteValue:结果:{}", JSON.toJSONString(remoteOptions)); + 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); + } + cache.put(value,label); + }); + } } + } } catch (Exception ex) { log.error("listRemoteOptions url", ex); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 824c8329eb..14b1f5cdae 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -23,10 +23,7 @@ import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.EpmetRequestHolder; -import com.epmet.commons.tools.utils.FileUtils; -import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.*; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcResiUserDao; import com.epmet.dao.IcUserChangeDetailedDao; @@ -1285,6 +1282,46 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } + @Override + public Map listRemoteCascadeOptions(String pureUri, String cascadeItemId, Map columnWrappers, String currentStaffAgencyId, String query) { + ColumnWrapper cascadeItemColumnWrapper = null; + + // 根据uri上的id,找到关联的itemid,从而找到关联的item的值 + if (columnWrappers != null && StringUtils.isNotBlank(cascadeItemId)){ + cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId); + } + + List options = null; + switch (pureUri) { + case "/heart/icresidemanddict/demandoption": + options = getResultDataOrThrowsException(epmetUserOpenFeignClient.getDemandOptions(), ServiceConstant.EPMET_USER_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), null, null); + break; + } + if (options == null) { + return null; + } + Map resultMap = new HashMap<>(); + options.forEach(option-> getChildren(option,resultMap)); + return resultMap; + } + + /** + * desc:递归获取children + * @param option + * @param resultMap + * todo 利用泛型 提取到公共类中 + */ + public void getChildren(OptionResultDTO option, Map resultMap) { + resultMap.put(option.getValue(),option); + if (CollectionUtils.isNotEmpty(option.getChildren())){ + option.getChildren().forEach(o->{ + resultMap.put(o.getValue(),o); + getChildren(o,resultMap); + }); + } + } + /** * 更新主表中人员类别标记 * @param icResiUserTableEnum