| 
					
				 | 
			
			
				@ -0,0 +1,82 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.hos.standard.match.metadata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.adapter.AdapterMetadataModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.standard.StdMetaDataModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.service.adapter.AdapterMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.util.LikeHashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Scope; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by Administrator on 2016/7/4. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Scope("prototype") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Component("metatdataStandardNameStrategy") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class MetatdataStandardNameStrategy { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static LikeHashMap<String,StdMetaDataModel> nameMap=new LikeHashMap<String,StdMetaDataModel>();//机构名称的map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static LikeHashMap<String,StdMetaDataModel> remarkMap=new LikeHashMap<String,StdMetaDataModel>();//机构remark的map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private AdapterMetadataService adapterMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public AdapterMetadataService getAdapterMetadataService() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return adapterMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void setAdapterMetadataService(AdapterMetadataService adapterMetadataService) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.adapterMetadataService = adapterMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MetatdataStandardNameStrategy(AdapterMetadataService adapterMetadataService) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.adapterMetadataService = adapterMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MetatdataStandardNameStrategy() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 对传进来的metadata进行匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param metadata 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean match(AdapterMetadataModel metadata, String version) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String name = metadata.getStdMetadataName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StdMetaDataModel orgStdeMetadata = nameMap.get(name, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orgStdeMetadata != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            adapterMetadataService.saveAdapt(metadata, orgStdeMetadata, version,"2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orgStdeMetadata=remarkMap.get(name,true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (orgStdeMetadata != null ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            adapterMetadataService.saveAdapt(metadata, orgStdeMetadata, version,"2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static Map<String, StdMetaDataModel> getRemarkMap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return remarkMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void setRemarkMap(LikeHashMap<String, StdMetaDataModel> remarkMap) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MetatdataStandardNameStrategy.remarkMap = remarkMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static Map<String, StdMetaDataModel> getNameMap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return nameMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void setNameMap(LikeHashMap<String, StdMetaDataModel> nameMap) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MetatdataStandardNameStrategy.nameMap = nameMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |