Browse Source

Merge remote-tracking branch 'remotes/origin/dev_resi_export' into develop

master
jianjun 4 years ago
parent
commit
9b7ffa740b
  1. 7
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  2. 5
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  3. 9
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  4. 13
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
  5. 15
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  6. 68
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java

7
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -1,7 +1,6 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerFootBarDTO;
import com.epmet.dto.IcFormItemOptionsDTO;
@ -171,10 +170,4 @@ public interface OperCustomizeOpenFeignClient {
@PostMapping("/oper/customize/icExportTemplate/getExcelHeaderAndSqlColumnForExport")
Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param);
/**
* @author sun
* @Description 居民信息自定义模板导出--保存模板
*/
@PostMapping("/oper/customize/icExportTemplate/save")
Result<List<IcExportTemplateForExportResultDTO>> save(@RequestBody IcExportTemplateSaveFormDTO formDTO);
}

5
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java

@ -1,7 +1,6 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerFootBarDTO;
@ -131,8 +130,4 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getExcelHeaderAndSqlColumnForExport", param);
}
@Override
public Result<List<IcExportTemplateForExportResultDTO>> save(IcExportTemplateSaveFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "save", formDTO);
}
}

9
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java

@ -80,15 +80,6 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
**/
List<ColumnTableNameResultDTO> getMustColumn(@Param("customerId") String customerId);
/**
* desc:获取需要远程获取并带有关联item的参数的 item项
*
* @param customerId
* @param formCode
* @return
*/
List<ConditionResultDTO> getConditionRemoteItems(@Param("customerId") String customerId, @Param("formCode") String formCode);
/**
* desc:根据Id获取item对应的表名和item属性
*

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

@ -203,20 +203,17 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
list = this.save(param.getExportConfig());
}
if (CollectionUtils.isEmpty(list)) {
return null;
}
//todo 删除多余的方法
// List<ConditionResultDTO> remoteItemList = icFormItemDao.getConditionRemoteItems(param.getCustomerId(), param.getFormCode());
Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp = list.stream().collect(Collectors.groupingBy(IcExportTemplateForExportResultDTO::getPid, LinkedHashMap::new, Collectors.toList()));
List<List<String>> headerList = new ArrayList<>();
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = new ArrayList<>();
List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns = new ArrayList<>();
Set<String> hasExistColumnSet = new HashSet<>();
resultTemp.get(NumConstant.ZERO_STR).forEach(root -> {
digui(resultTemp, root, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet);
});
resultTemp.get(NumConstant.ZERO_STR)
.forEach(root -> recursionData(resultTemp, root, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet));
//组织 关联item项的
if (hasExistColumnSet.size() > NumConstant.ZERO) {
Set<String> configItemIdSet = list.stream().map(IcExportTemplateForExportResultDTO::getItemId).collect(Collectors.toSet());
@ -297,7 +294,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
return baseDao.getTemplateDetail(formDTO.getId());
}
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 recursionData(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())) {
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)) {
@ -315,7 +312,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
headerGroupList.add(root.getLabel());
headerGroupList.add(o.getLabel());
headerList.add(headerGroupList);
digui(resultTemp, o, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet);
recursionData(resultTemp, o, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet);
});
}

15
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -226,21 +226,6 @@
)
order by g.sort asc
</select>
<select id="getConditionRemoteItems" resultType="com.epmet.dto.result.ConditionResultDTO">
SELECT
ifi.ID AS itemId,
ifi.OPTION_SOURCE_VALUE,
ifig.TABLE_NAME,
concat(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName
FROM ic_form_item ifi LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
WHERE
ifi.OPTION_SOURCE_TYPE = 'remote'
AND ifi.OPTION_SOURCE_VALUE like '%?%'
AND ifi.CUSTOMER_ID = #{customerId}
AND ifi.FORM_CODE = #{formCode}
and ifi.DEL_FLAG = '0'
AND ifig.DEL_FLAG = '0'
</select>
<select id="getConditionItem" resultType="com.epmet.dto.result.ConditionResultDTO">
SELECT
ifi.ID AS itemId,

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

Loading…
Cancel
Save