Browse Source

自定义导出处理需求的item值

dev
jianjun 3 years ago
parent
commit
a47ee45f94
  1. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
  2. 36
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
  3. 45
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

12
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<String, String> listRemoteOptions(String pureUri, String cascadeItemId, Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers, String currUserAgencyId, String purpose);
/**
* desc:获取级联的远程 选项
* @param part
* @param part1
* @param columnWrappers
* @param currentStaffAgencyId
* @param query
* @return
*/
Map<String, OptionResultDTO> listRemoteCascadeOptions(String part, String part1, Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers, String currentStaffAgencyId, String query);
}

36
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<String, String> 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<String, OptionResultDTO> remoteOptions = icResiUserImportService.listRemoteCascadeOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query");
List<String> 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<String, String> 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);

45
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<String, OptionResultDTO> listRemoteCascadeOptions(String pureUri, String cascadeItemId, Map<String, ColumnWrapper> columnWrappers, String currentStaffAgencyId, String query) {
ColumnWrapper cascadeItemColumnWrapper = null;
// 根据uri上的id,找到关联的itemid,从而找到关联的item的值
if (columnWrappers != null && StringUtils.isNotBlank(cascadeItemId)){
cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId);
}
List<OptionResultDTO> 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<String, OptionResultDTO> resultMap = new HashMap<>();
options.forEach(option-> getChildren(option,resultMap));
return resultMap;
}
/**
* desc:递归获取children
* @param option
* @param resultMap
* todo 利用泛型 提取到公共类中
*/
public void getChildren(OptionResultDTO option, Map<String, OptionResultDTO> 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

Loading…
Cancel
Save