Browse Source

导出代码暂存

dev
jianjun 3 years ago
parent
commit
72d36b6bb8
  1. 10
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java
  2. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
  3. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
  4. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  5. 19
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
  6. 151
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
  7. 26
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

10
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java

@ -29,14 +29,4 @@ public class IcExportTemplateQueryFormDTO implements Serializable {
@NotBlank(message = "客户Id不能为空",groups = ExportGroup.class) @NotBlank(message = "客户Id不能为空",groups = ExportGroup.class)
private String customerId; private String customerId;
/**
* 表单CODE从字典获取
*/
private String formCode;
/**
* 模板名称
*/
private String name;
} }

2
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java

@ -131,7 +131,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
private void digui(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns, Set<String> hasExistColumnSet) { private void digui(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns, Set<String> hasExistColumnSet) {
if (StringUtils.isNotBlank(root.getColumnName())) { if (StringUtils.isNotBlank(root.getColumnName())) {
showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getItemId(),root.getTableName(), root.getColumnName(),root.getOptionSourceType(),root.getOptionSourceValue())); showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getItemId(),root.getTableName(), root.getColumnName(),root.getOptionSourceType(),root.getOptionSourceValue()));
if (StringUtils.isNotBlank(root.getOptionSourceValue())) { if (StringUtils.isNotBlank(root.getOptionSourceValue())&&root.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)) {
String[] paramArr = root.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK); String[] paramArr = root.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK);
//先remote中再添加 然后移除item中有的 //先remote中再添加 然后移除item中有的
hasExistColumnSet.addAll(Arrays.asList(paramArr)); hasExistColumnSet.addAll(Arrays.asList(paramArr));

10
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java

@ -18,10 +18,10 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
public interface AddUserInternalGroup { public interface AddUserInternalGroup {
} }
@NotBlank(message = "formCode不能为空", groups = AddUserInternalGroup.class) @NotBlank(message = "formCode不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String formCode; private String formCode;
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) @NotBlank(message = "customerId不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String customerId; private String customerId;
/** /**
@ -29,7 +29,7 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
*/ */
private List<ResiUserQueryValueDTO> conditions; private List<ResiUserQueryValueDTO> conditions;
@NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class) @NotBlank(message = "当前用户id不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String staffId; private String staffId;
/** /**
@ -37,7 +37,9 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
*/ */
private String keyword; private String keyword;
@NotBlank(message = "模板id不能为空", groups = ExportGroup.class) /**
* 模板id
*/
private String templateId; private String templateId;
} }

9
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -415,9 +415,12 @@ public class IcResiUserController implements ResultDataResolver {
@NoRepeatSubmit @NoRepeatSubmit
@RequestMapping(value = "/exportExcelCustom") @RequestMapping(value = "/exportExcelCustom")
public void exportExcelCustom(/*@LoginUser*/ TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { public void exportExcelCustom(/*@LoginUser*/ TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception {
//tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); //TODO 去掉
//tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); tokenDto.setUserId("73ae6280e46a6653a5605d51d5462725");
ValidatorUtils.validateEntity(pageFormDTO, ExportGroup.class); tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
pageFormDTO.setCustomerId(tokenDto.getCustomerId());
pageFormDTO.setStaffId(tokenDto.getUserId());
ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class,ExportGroup.class);
pageFormDTO.setIsPage(false); pageFormDTO.setIsPage(false);
//获取导出配置 //获取导出配置
icResiUserExportService.exportIcResiUser(pageFormDTO,response); icResiUserExportService.exportIcResiUser(pageFormDTO,response);

19
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java

@ -1,10 +1,12 @@
package com.epmet.service; package com.epmet.service;
import com.epmet.dto.result.FormItemResult; import com.epmet.dto.result.FormItemResult;
import com.epmet.service.impl.IcResiUserImportServiceImpl;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
*@Description 居民信息导入service *@Description 居民信息导入service
@ -33,5 +35,20 @@ public interface IcResiUserImportService {
*/ */
void finishImportTask(String importTaskId, String operatorId, String processStatus, String resultDesc, String resultDescPath); void finishImportTask(String importTaskId, String operatorId, String processStatus, String resultDesc, String resultDescPath);
Object testAsync(); /**
* 分割sourceUrl为纯url和父itemId
* @param fullUri
* @return [ pureUri, cascadeItemId(父itemId) ]
*/
String[] splitOptionSourceUrl(String fullUri);
/**
* desc:获取远程 选项
* @param pureUri
* @param cascadeItemId
* @param columnWrappers
* @param currUserAgencyId
* @param purpose
* @return
*/
Map<String, String> listRemoteOptions(String pureUri, String cascadeItemId, Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers, String currUserAgencyId, String purpose);
} }

151
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java

@ -4,35 +4,44 @@ import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.FormItemTypeEnum;
import com.epmet.commons.tools.enums.IcFormCodeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter; import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.constant.IcResiUserConstant; import com.epmet.constant.IcResiUserConstant;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO; import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO; import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.dto.result.FormItemResult;
import com.epmet.dto.result.IcCustomExportResultDTO; import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.OptionDTO;
import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.IcResiUserExportService; import com.epmet.service.IcResiUserExportService;
import com.epmet.service.IcResiUserImportService;
import com.epmet.service.IcResiUserService; import com.epmet.service.IcResiUserService;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -48,9 +57,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
@Autowired @Autowired
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
@Autowired @Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private IcResiUserService icResiUserService; private IcResiUserService icResiUserService;
@Autowired
private IcResiUserImportService icResiUserImportService;
/** /**
* desc: 根据条件查询居民信息并根据配置模板导出 * desc: 根据条件查询居民信息并根据配置模板导出
@ -65,22 +74,20 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
public void exportIcResiUser(IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) { public void exportIcResiUser(IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) {
ExcelWriter excelWriter = null; ExcelWriter excelWriter = null;
try { try {
//获取模板条件 //获取用户配置的导出条件
IcExportTemplateQueryFormDTO param = new IcExportTemplateQueryFormDTO(); Result<IcCustomExportResultDTO> exportConfigResult = getIcCustomExportConfig(pageFormDTO);
param.setCustomerId(loginUserUtil.getLoginUserCustomerId());
param.setTempId(pageFormDTO.getTemplateId()); Map<String, ExportResiUserItemDTO> itemOriginMap = getItemMap(pageFormDTO.getCustomerId());
Result<IcCustomExportResultDTO> exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param);
if (!exportConfigResult.success() || exportConfigResult.getData() == null) {
log.error("获取模板失败");
return;
}
IcCustomExportResultDTO exportConfigData = exportConfigResult.getData(); IcCustomExportResultDTO exportConfigData = exportConfigResult.getData();
log.info("查询到的模板配置信息:{}", JSON.toJSONString(exportConfigData)); log.info("查询到的模板配置信息:{}", JSON.toJSONString(exportConfigData));
FreezeAndFilter writeHandler = new FreezeAndFilter(); FreezeAndFilter writeHandler = new FreezeAndFilter();
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response)).registerWriteHandler(writeHandler).build(); excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response)).registerWriteHandler(writeHandler).build();
WriteSheet writeSheet = EasyExcel.writerSheet().head(exportConfigData.getHeaders()).build(); WriteSheet writeSheet = EasyExcel.writerSheet().head(exportConfigData.getHeaders()).build();
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(loginUserUtil.getLoginUserCustomerId(), loginUserUtil.getLoginUserId()); CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(pageFormDTO.getCustomerId(), pageFormDTO.getStaffId());
if (staffInfoCacheResult == null){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取工作人员信息失败");
}
String staffOrgPath = null; String staffOrgPath = null;
if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) {
staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfoCacheResult.getAgencyId()); staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfoCacheResult.getAgencyId());
@ -93,34 +100,54 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
do { do {
String finalStaffOrgPath = staffOrgPath; String finalStaffOrgPath = staffOrgPath;
mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getIsPage()).doSelectPage(() -> { mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getIsPage()).doSelectPage(() -> {
icResiUserService.dynamicQuery(loginUserUtil.getLoginUserCustomerId(), pageFormDTO.getFormCode(), IcResiUserConstant.IC_RESI_USER, allShowColumns, pageFormDTO.getConditions(), staffInfoCacheResult.getAgencyId(), finalStaffOrgPath); icResiUserService.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), IcResiUserConstant.IC_RESI_USER, allShowColumns, pageFormDTO.getConditions(), staffInfoCacheResult.getAgencyId(), finalStaffOrgPath);
}); });
pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE); pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE);
List<Map<String, Object>> result = mapListPage.getResult(); List<Map<String, Object>> result = mapListPage.getResult();
List<List<Object>> resultData = new ArrayList<>(); List<List<Object>> resultData = new ArrayList<>();
result.forEach(o -> { result.forEach(o -> {
List<Object> singleResult = new ArrayList<>(); List<Object> singleResult = new ArrayList<>();
Map<String,Object> originalConditionMap = new ConcurrentHashMap<>();
o.forEach((key,value) -> { o.forEach((key,value) -> {
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = exportConfigData.getShowSqlColumns(); List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = exportConfigData.getShowSqlColumns();
Map<String, IcCustomExportResultDTO.SqlColumn> itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item)); Map<String, IcCustomExportResultDTO.SqlColumn> itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item));
IcCustomExportResultDTO.SqlColumn columnDTO = itemMap.get(key);
if (singleResult.size() < showSqlColumns.size()) { if (singleResult.size() < showSqlColumns.size()) {
singleResult.add(value);
IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key); IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key);
String tableName = sqlColumn.getTableName();
String itemId = sqlColumn.getItemId();
String columnName = columnDTO.getColumnName();
String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString(); String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString();
/* if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) { //保留原始值 便于remote条件获取
putRemoteValue(formItemMap.getRemoteItemConditionMap().get(e.getItemId()), currentStaffAgencyId, resiUser,originalConditionMap, e, columnName, vauleStr); originalConditionMap.putIfAbsent(columnName,vauleStr);
} else { ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName);
putOptionValue(resiUser, e, columnName, vauleStr); FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName);
}*/
if (StringUtils.isBlank(vauleStr)){
return;
}
String newValue = vauleStr;
if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType())) {
putRemoteValue(exportResiUserItemDTO.getRemoteItemConditionMap().get(itemId), staffInfoCacheResult.getAgencyId(), o,originalConditionMap, formItemResult, columnName, vauleStr);
} else if (Constant.OPITON_SOURCE_LOCAL.equals(sqlColumn.getOptionSourceType())){
newValue = putOptionValue(formItemResult, vauleStr);
}
singleResult.add(newValue);
} }
}); });
resultData.add(singleResult); resultData.add(singleResult);
}); });
log.info("需要写入的data长度:{}", resultData.size()); log.info("需要写入的data长度:{}", resultData.size());
excelWriter.write(resultData, writeSheet); excelWriter.write(resultData, writeSheet);
//todo
break;
} while (mapListPage.getResult().size() == pageFormDTO.getPageSize()); } while (mapListPage.getResult().size() == pageFormDTO.getPageSize());
} catch (IOException e) { } catch (IOException e) {
log.error("exportIcResiUser exception", e); log.error("exportIcResiUser exception", e);
@ -131,20 +158,31 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
} }
} }
@Nullable
public Result<IcCustomExportResultDTO> getIcCustomExportConfig(IcResiUserPageFormDTO pageFormDTO) {
IcExportTemplateQueryFormDTO param = new IcExportTemplateQueryFormDTO();
param.setCustomerId(pageFormDTO.getCustomerId());
param.setTempId(pageFormDTO.getTemplateId());
Result<IcCustomExportResultDTO> exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param);
if (!exportConfigResult.success() || exportConfigResult.getData() == null) {
log.error("获取模板失败");
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取模板失败");
}
return exportConfigResult;
}
/** /**
* key:itemId,value: key:columnName,中文 * key:itemId,value: key:columnName,中文
*/ */
private static Map<String, Cache<String,String>> remoteOptionCacheMap = new HashMap<>(); private static Map<String, Cache<String,String>> remoteOptionCacheMap = new HashMap<>();
/*private void putRemoteValue(Set<FormItemResult> conditionItemSet, String currentStaffAgencyId, Map<String, Object> map, Map<String, Object> originalConditionMap, FormItemResult e, String columnName, String vauleStr) { private void putRemoteValue(Set<FormItemResult> conditionItemSet, String currentStaffAgencyId, Map<String, Object> map, Map<String, Object> originalConditionMap, FormItemResult e, String columnName, String vauleStr) {
try { try {
Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers = new HashMap<>(); Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers = new HashMap<>();
if (e.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){ if (e.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
for (FormItemResult o : conditionItemSet) { for (FormItemResult o : conditionItemSet) {
String column = getColumnName(o); Object conditionValue = originalConditionMap.getOrDefault(columnName, map.get(columnName));
Object conditionValue = originalConditionMap.getOrDefault(column, map.get(column)); originalConditionMap.putIfAbsent(columnName,conditionValue.toString());
originalConditionMap.putIfAbsent(column,conditionValue.toString());
IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper(); IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper();
value.setColValue(conditionValue.toString()); value.setColValue(conditionValue.toString());
columnWrappers.put(o.getItemId(), value); columnWrappers.put(o.getItemId(), value);
@ -171,28 +209,67 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
log.error("listRemoteOptions url:{}", e.getOptionSourceValue()); log.error("listRemoteOptions url", ex);
} }
} }
private void putOptionValue(Map<String, Object> map, FormItemResult e, String columnName, String vauleStr) { private String putOptionValue(FormItemResult e, String vauleStr) {
FormItemTypeEnum itemTypeEnum = FormItemTypeEnum.getEnum(e.getItemType()); FormItemTypeEnum itemTypeEnum = FormItemTypeEnum.getEnum(e.getItemType());
switch (itemTypeEnum) { switch (itemTypeEnum) {
case CHECKBOX: case CHECKBOX:
e.getOptions().forEach(optionDTO -> { for (OptionDTO dto : e.getOptions()) {
map.put(optionDTO.getValue(), vauleStr.contains(optionDTO.getValue()) ? StrConstant.YES : StrConstant.NO); return vauleStr.contains(dto.getValue()) ? StrConstant.YES : StrConstant.NO;
}); }
break; break;
case SELECT: case SELECT:
case RADIO: case RADIO:
e.getOptions().forEach(optionDTO -> { for (OptionDTO optionDTO : e.getOptions()) {
if (optionDTO.getValue().equals(vauleStr)) { if (optionDTO.getValue().equals(vauleStr)) {
map.put(columnName, optionDTO.getLabel()); return optionDTO.getLabel();
} }
}); }
break; break;
default: default:
} }
}*/ return vauleStr;
}
/**
* desc:获取表单配置
* @param customerId
* @return map key:tableName ,value:ExportResiUserItemDTO
*/
private Map<String, ExportResiUserItemDTO> getItemMap(String customerId){
//获取表单项
IcResiUserService icResiUserService = SpringContextUtils.getBean(IcResiUserService.class);
if (icResiUserService == null){
log.error("获取bean IcResiUserService 失败");
return null;
}
List<FormItemResult> resiFormAllItems = icResiUserService.listFormItems(customerId, IcFormCodeEnum.RESI_BASE_INFO.getCode());
Map<String, FormItemResult> allItemMap = resiFormAllItems.stream().collect(Collectors.toMap(FormItemResult::getItemId, o -> o));
Map<String, ExportResiUserItemDTO> map = new HashMap<>();
allItemMap.values().forEach(item->{
String tableName = item.getTableName();
ExportResiUserItemDTO exportItem = map.getOrDefault(tableName, new ExportResiUserItemDTO());
map.putIfAbsent(tableName,exportItem);
String columnName = item.getColumnName().concat(item.getColumnNum() == NumConstant.ZERO ? StrConstant.EPMETY_STR : item.getColumnNum().toString());
exportItem.getItemMap().put(columnName,item);
if (Constant.OPITON_SOURCE_REMOTE.equals(item.getOptionSourceType())&&item.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
//多个参数
String[] paramArr = item.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK);
Arrays.stream(paramArr).forEach(o->{
FormItemResult value = allItemMap.get(o);
if (value == null){
return;
}
Set<FormItemResult> conditionSet = exportItem.getRemoteItemConditionMap().getOrDefault(item.getItemId(),new HashSet<>());
conditionSet.add(value);
exportItem.getRemoteItemConditionMap().putIfAbsent(item.getItemId(),conditionSet);
});
}
});
return map;
}
} }

26
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -8,8 +8,8 @@ import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.EasyExcelFactory;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.bean.ResiImportCategoryData; import com.epmet.bean.ResiImportCategoryData;
import com.epmet.bean.ResiImportResiCategoryChangedCache;
import com.epmet.bean.ResiImportChangedData; import com.epmet.bean.ResiImportChangedData;
import com.epmet.bean.ResiImportResiCategoryChangedCache;
import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
@ -33,7 +33,10 @@ import com.epmet.dao.IcUserChangeDetailedDao;
import com.epmet.dao.IcUserChangeRecordDao; import com.epmet.dao.IcUserChangeRecordDao;
import com.epmet.dao.IcUserTransferRecordDao; import com.epmet.dao.IcUserTransferRecordDao;
import com.epmet.dto.*; import com.epmet.dto.*;
import com.epmet.dto.form.*; import com.epmet.dto.form.GridOptionFormDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.form.IcResiUserOrgMsgFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.IcResiUserEntity; import com.epmet.entity.IcResiUserEntity;
import com.epmet.entity.IcUserChangeDetailedEntity; import com.epmet.entity.IcUserChangeDetailedEntity;
@ -43,14 +46,14 @@ import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.excel.handler.IcResiImportDynamicExcelListener; import com.epmet.excel.handler.IcResiImportDynamicExcelListener;
import com.epmet.excel.handler.IcResiVirtualSheetImportListener; import com.epmet.excel.handler.IcResiVirtualSheetImportListener;
import com.epmet.feign.*; import com.epmet.feign.*;
import com.epmet.service.*; import com.epmet.service.IcResiUserImportService;
import com.epmet.service.UserService;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
@ -60,7 +63,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Path; import java.nio.file.Path;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.Period; import java.time.Period;
@ -1151,6 +1156,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @param fullUri * @param fullUri
* @return [ pureUri, cascadeItemId(父itemId) ] * @return [ pureUri, cascadeItemId(父itemId) ]
*/ */
@Override
public String[] splitOptionSourceUrl(String fullUri) { public String[] splitOptionSourceUrl(String fullUri) {
String pureUri = null; String pureUri = null;
String cascadeItemId = null; String cascadeItemId = null;
@ -1170,6 +1176,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* 远程获取options * 远程获取options
* @return * @return
*/ */
@Override
public Map<String, String> listRemoteOptions(String pureUri, String cascadeItemId, Map<String, ColumnWrapper> columnWrappers, String currUserAgencyId, String purpose) { public Map<String, String> listRemoteOptions(String pureUri, String cascadeItemId, Map<String, ColumnWrapper> columnWrappers, String currUserAgencyId, String purpose) {
ColumnWrapper cascadeItemColumnWrapper = null; ColumnWrapper cascadeItemColumnWrapper = null;
@ -1971,6 +1978,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @param bizType * @param bizType
* @return * @return
*/ */
@Override
public String createImportTaskRecord(String operatorId, String bizType, String originFilename) { public String createImportTaskRecord(String operatorId, String bizType, String originFilename) {
ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO();
importTaskForm.setOperatorId(operatorId); importTaskForm.setOperatorId(operatorId);
@ -1992,6 +2000,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @param resultDesc 结果描述非必填 * @param resultDesc 结果描述非必填
* @param resultDescPath 结果描述文件excel等文件有错误的话需要传入成功则不需要 * @param resultDescPath 结果描述文件excel等文件有错误的话需要传入成功则不需要
*/ */
@Override
public void finishImportTask(String importTaskId, String operatorId, String processStatus, String resultDesc, String resultDescPath) { public void finishImportTask(String importTaskId, String operatorId, String processStatus, String resultDesc, String resultDescPath) {
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId); importFinishTaskForm.setTaskId(importTaskId);
@ -2006,11 +2015,4 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
importTaskId, processStatus, operatorId, resultDesc, resultDescPath); importTaskId, processStatus, operatorId, resultDesc, resultDescPath);
} }
} }
@Override
public Object testAsync() {
IcNeighborHoodDTO nform = new IcNeighborHoodDTO();
govOrgOpenFeignClient.getNeighborHoodOptions(nform);
return null;
}
} }

Loading…
Cancel
Save