|
|
@ -30,6 +30,7 @@ import com.epmet.service.IcResiUserImportService; |
|
|
|
import com.epmet.service.IcResiUserService; |
|
|
|
import com.github.pagehelper.Page; |
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
import com.google.common.base.Joiner; |
|
|
|
import com.google.common.cache.Cache; |
|
|
|
import com.google.common.cache.CacheBuilder; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
@ -111,6 +112,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { |
|
|
|
result.forEach(o -> { |
|
|
|
List<Object> singleResult = new ArrayList<>(); |
|
|
|
Map<String,Object> originalConditionMap = new ConcurrentHashMap<>(); |
|
|
|
log.info("==========居民信息:{}",JSON.toJSONString(o)); |
|
|
|
o.forEach((key,value) -> { |
|
|
|
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = exportConfigData.getShowSqlColumns(); |
|
|
|
Map<String, IcCustomExportResultDTO.SqlColumn> itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item)); |
|
|
@ -130,12 +132,10 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { |
|
|
|
ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName); |
|
|
|
FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName); |
|
|
|
|
|
|
|
if (StringUtils.isBlank(vauleStr)){ |
|
|
|
return; |
|
|
|
} |
|
|
|
String newValue = vauleStr; |
|
|
|
if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType())) { |
|
|
|
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); |
|
|
|
} |
|
|
@ -178,11 +178,14 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { |
|
|
|
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) { |
|
|
|
try { |
|
|
|
log.info("========putRemoteValue:formItemResult:{}",e.getLabel()); |
|
|
|
log.info("========putRemoteValue:columnName:{},vauleStr:{}",columnName,vauleStr); |
|
|
|
Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers = new HashMap<>(); |
|
|
|
if (e.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){ |
|
|
|
for (FormItemResult o : conditionItemSet) { |
|
|
|
Object conditionValue = originalConditionMap.getOrDefault(columnName, map.get(columnName)); |
|
|
|
originalConditionMap.putIfAbsent(columnName,conditionValue.toString()); |
|
|
|
String conditionColumnName = o.getColumnNum() == NumConstant.ZERO? o.getColumnName():o.getColumnName().concat(o.getColumnNum().toString()); |
|
|
|
Object conditionValue = originalConditionMap.getOrDefault(conditionColumnName, map.get(conditionColumnName)); |
|
|
|
originalConditionMap.putIfAbsent(conditionColumnName,conditionValue.toString()); |
|
|
|
IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper(); |
|
|
|
value.setColValue(conditionValue.toString()); |
|
|
|
columnWrappers.put(o.getItemId(), value); |
|
|
@ -197,6 +200,8 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { |
|
|
|
String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue()); |
|
|
|
|
|
|
|
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())) { |
|
|
@ -208,7 +213,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception ex) { |
|
|
|
} catch (Exception ex) { |
|
|
|
log.error("listRemoteOptions url", ex); |
|
|
|
} |
|
|
|
} |
|
|
@ -217,6 +222,16 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { |
|
|
|
FormItemTypeEnum itemTypeEnum = FormItemTypeEnum.getEnum(e.getItemType()); |
|
|
|
switch (itemTypeEnum) { |
|
|
|
case CHECKBOX: |
|
|
|
if (e.getMultiSelect()){ |
|
|
|
List<String> valueList = new ArrayList<>(); |
|
|
|
e.getOptions().forEach(option->{ |
|
|
|
if (vauleStr.contains(option.getValue())){ |
|
|
|
valueList.add(option.getLabel()); |
|
|
|
} |
|
|
|
}); |
|
|
|
return Joiner.on(",").join(valueList); |
|
|
|
|
|
|
|
} |
|
|
|
for (OptionDTO dto : e.getOptions()) { |
|
|
|
return vauleStr.contains(dto.getValue()) ? StrConstant.YES : StrConstant.NO; |
|
|
|
} |
|
|
@ -246,7 +261,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { |
|
|
|
log.error("获取bean IcResiUserService 失败"); |
|
|
|
return null; |
|
|
|
} |
|
|
|
List<FormItemResult> resiFormAllItems = icResiUserService.listFormItems(customerId, IcFormCodeEnum.RESI_BASE_INFO.getCode()); |
|
|
|
List<FormItemResult> resiFormAllItems = this.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->{ |
|
|
|