|  |  | @ -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->{ | 
			
		
	
	
		
			
				
					|  |  | 
 |