Browse Source

代码微调

release
jianjun 3 years ago
parent
commit
4caebaf21c
  1. 12
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
  2. 61
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java

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

@ -129,8 +129,6 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
tempEntity.setPids(StringUtils.isEmpty(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids() + ":" + agencyInfo.getId()); tempEntity.setPids(StringUtils.isEmpty(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids() + ":" + agencyInfo.getId());
tempEntity.setFormCode(formDTO.getFormCode()); tempEntity.setFormCode(formDTO.getFormCode());
tempEntity.setName(formDTO.getName()); tempEntity.setName(formDTO.getName());
/*tempEntity.setType();
tempEntity.setUrl();*/
tempEntity.setSort(sort); tempEntity.setSort(sort);
} }
@ -208,13 +206,13 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
return null; return null;
} }
Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp = list.stream().collect(Collectors.groupingBy(IcExportTemplateForExportResultDTO::getPid, LinkedHashMap::new, Collectors.toList())); Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp = list.stream()
.collect(Collectors.groupingBy(IcExportTemplateForExportResultDTO::getPid, LinkedHashMap::new, Collectors.toList()));
List<List<String>> headerList = new ArrayList<>(); List<List<String>> headerList = new ArrayList<>();
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = new ArrayList<>(); List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = new ArrayList<>();
List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns = new ArrayList<>(); List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns = new ArrayList<>();
Set<String> hasExistColumnSet = new HashSet<>(); Set<String> hasExistColumnSet = new HashSet<>();
resultTemp.get(NumConstant.ZERO_STR) resultTemp.get(NumConstant.ZERO_STR).forEach(root -> recursionData(resultTemp, root, headerList, showSqlColumns, hasExistColumnSet));
.forEach(root -> recursionData(resultTemp, root, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet));
//组织 关联item项的 //组织 关联item项的
if (hasExistColumnSet.size() > NumConstant.ZERO) { if (hasExistColumnSet.size() > NumConstant.ZERO) {
Set<String> configItemIdSet = list.stream().map(IcExportTemplateForExportResultDTO::getItemId).collect(Collectors.toSet()); Set<String> configItemIdSet = list.stream().map(IcExportTemplateForExportResultDTO::getItemId).collect(Collectors.toSet());
@ -295,7 +293,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
return baseDao.getTemplateDetail(formDTO.getId()); return baseDao.getTemplateDetail(formDTO.getId());
} }
private void recursionData(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns, Set<String> hasExistColumnSet) { private void recursionData(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, Set<String> hasExistColumnSet) {
if (StringUtils.isNotBlank(root.getColumnName())) { if (StringUtils.isNotBlank(root.getColumnName())) {
showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getItemId(),root.getTableName(),root.isSupportAdd(), root.getColumnName(),root.getOptionSourceType())); showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getItemId(),root.getTableName(),root.isSupportAdd(), root.getColumnName(),root.getOptionSourceType()));
if (StringUtils.isNotBlank(root.getOptionSourceValue())&&root.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)) { if (StringUtils.isNotBlank(root.getOptionSourceValue())&&root.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)) {
@ -313,7 +311,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
headerGroupList.add(root.getLabel()); headerGroupList.add(root.getLabel());
headerGroupList.add(o.getLabel()); headerGroupList.add(o.getLabel());
headerList.add(headerGroupList); headerList.add(headerGroupList);
recursionData(resultTemp, o, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet); recursionData(resultTemp, o, headerList, showSqlColumns, hasExistColumnSet);
}); });
} }

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

@ -86,7 +86,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
@Override @Override
public void exportIcResiUser(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO, HttpServletResponse response) { public void exportIcResiUser(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO, HttpServletResponse response) {
//校验参数 //校验参数
validateSearchForm(tokenDto, exportResiUserFormDTO); this.validateSearchForm(tokenDto, exportResiUserFormDTO);
IcResiUserPageFormDTO searchForm = exportResiUserFormDTO.getSearchForm(); IcResiUserPageFormDTO searchForm = exportResiUserFormDTO.getSearchForm();
String templateId = exportResiUserFormDTO.getTemplateId(); String templateId = exportResiUserFormDTO.getTemplateId();
@ -94,7 +94,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
ExcelWriter excelWriter = null; ExcelWriter excelWriter = null;
try { try {
//获取用户配置的导出条件 //获取用户配置的导出条件
Result<IcCustomExportResultDTO> exportConfigResult = getIcCustomExportConfig(searchForm.getCustomerId(), templateId, exportResiUserFormDTO.getExportConfig()); Result<IcCustomExportResultDTO> exportConfigResult = this.getIcCustomExportConfig(searchForm.getCustomerId(), templateId, exportResiUserFormDTO.getExportConfig());
Map<String, ExportResiUserItemDTO> itemOriginMap = getItemMap(searchForm.getCustomerId()); Map<String, ExportResiUserItemDTO> itemOriginMap = getItemMap(searchForm.getCustomerId());
IcCustomExportResultDTO exportConfigData = exportConfigResult.getData(); IcCustomExportResultDTO exportConfigData = exportConfigResult.getData();
@ -107,7 +107,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
List<IcCustomExportResultDTO.SqlColumn> allShowColumns = new ArrayList<>(exportConfigData.getShowSqlColumns()); List<IcCustomExportResultDTO.SqlColumn> allShowColumns = new ArrayList<>(exportConfigData.getShowSqlColumns());
//需要合并的列 //需要合并的列
List<Integer> mergeColumnIndexList = new ArrayList<>(); List<Integer> mergeColumnIndexList = new ArrayList<>();
for (int i = 0; i < allShowColumns.size(); i++) { for (int i = 0; i < allShowColumns.size(); i++) {
@ -162,44 +161,46 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = exportConfigData.getShowSqlColumns(); List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = exportConfigData.getShowSqlColumns();
Set<String> hiddenColumnSet = exportConfigData.getHiddenSqlColumns().stream().map(IcCustomExportResultDTO.SqlColumn::getColumnName).collect(Collectors.toSet()); Set<String> hiddenColumnSet = exportConfigData.getHiddenSqlColumns().stream().map(IcCustomExportResultDTO.SqlColumn::getColumnName).collect(Collectors.toSet());
result.forEach(o -> { result.forEach(o -> {
List<Object> singleResult = new ArrayList<>(); List<Object> singleRowData = new ArrayList<>();
Map<String, Object> originalConditionMap = new ConcurrentHashMap<>(); Map<String, Object> originalConditionMap = new ConcurrentHashMap<>();
o.forEach((key, value) -> { o.forEach((key, value) -> {
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); IcCustomExportResultDTO.SqlColumn columnDTO = itemMap.get(key);
if (singleResult.size() < showSqlColumns.size()) { //忽略 不需要显示的列的值得设置 要不然数据会写入到excel中
IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key); if (singleRowData.size() >= showSqlColumns.size()) {
String tableName = sqlColumn.getTableName(); return;
String itemId = sqlColumn.getItemId(); }
String columnName = columnDTO.getColumnName();
if (hiddenColumnSet.contains(columnName)) {
return;
}
String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString();
//保留原始值 便于remote条件获取
originalConditionMap.putIfAbsent(columnName, vauleStr);
ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName);
FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName);
String newValue = vauleStr; IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key);
if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) { String tableName = sqlColumn.getTableName();
putRemoteValue(exportResiUserItemDTO.getRemoteItemConditionMap().get(itemId), staffInfoCacheResult.getAgencyId(), o, originalConditionMap, formItemResult, columnName, vauleStr); String itemId = sqlColumn.getItemId();
newValue = String.valueOf(o.get(columnName)); String columnName = columnDTO.getColumnName();
} else if (Constant.OPITON_SOURCE_LOCAL.equals(sqlColumn.getOptionSourceType())) { if (hiddenColumnSet.contains(columnName)) {
newValue = putOptionValue(formItemResult, vauleStr); return;
} }
singleResult.add(newValue); String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString();
//保留原始值 便于remote条件获取
originalConditionMap.putIfAbsent(columnName, vauleStr);
ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName);
FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName);
String newValue = vauleStr;
if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType()) && StringUtils.isNotBlank(vauleStr)) {
putRemoteValue(exportResiUserItemDTO.getRemoteItemConditionMap().get(itemId), staffInfoCacheResult.getAgencyId(), o, originalConditionMap, formItemResult, columnName, vauleStr);
newValue = String.valueOf(o.get(columnName));
} else if (Constant.OPITON_SOURCE_LOCAL.equals(sqlColumn.getOptionSourceType())) {
newValue = putOptionValue(formItemResult, vauleStr);
} }
singleRowData.add(newValue);
}); });
resultData.add(singleResult); resultData.add(singleRowData);
}); });
excelWriter.write(resultData, writeSheet); excelWriter.write(resultData, writeSheet);
break; break;
} while (mapListPage.getResult().size() == searchForm.getPageSize()); } while (mapListPage.getResult().size() == searchForm.getPageSize());
} catch (IOException e) { } catch (IOException e) {
log.error("exportIcResiUser exception", e); log.error("exportIcResiUser exception", e);
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMessage(), "导出失败");
} finally { } finally {
if (excelWriter != null) { if (excelWriter != null) {
excelWriter.finish(); excelWriter.finish();
@ -289,7 +290,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
map.put(columnName, join); map.put(columnName, join);
return; return;
} }
//todo 不支持多个itemId
Map<String, String> remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); Map<String, String> remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query");
if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) { if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) {
remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? StrConstant.YES : StrConstant.NO)); remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? StrConstant.YES : StrConstant.NO));
@ -319,13 +319,12 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
//如果是多选 则返回顿号隔开 //如果是多选 则返回顿号隔开
if (e.getMultiSelect()) { if (e.getMultiSelect()) {
List<String> valueList = new ArrayList<>(); List<String> valueList = new ArrayList<>();
e.getOptions().forEach(option -> { e.getOptions().stream().forEach(option -> {
if (valueStr.contains(option.getValue())) { if (valueStr.contains(option.getValue())) {
valueList.add(option.getLabel()); valueList.add(option.getLabel());
} }
}); });
return Joiner.on("、").join(valueList); return Joiner.on("、").join(valueList);
} }
for (OptionDTO dto : e.getOptions()) { for (OptionDTO dto : e.getOptions()) {
return valueStr.contains(dto.getValue()) ? StrConstant.YES : StrConstant.NO; return valueStr.contains(dto.getValue()) ? StrConstant.YES : StrConstant.NO;

Loading…
Cancel
Save