| 
					
				 | 
			
			
				@ -3,12 +3,15 @@ package com.yihu.hos.standard.match.metadata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.dao.IStdDataSetModelDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.dao.IStdMetaDataModelDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.match.matchModel.MetadataMatchVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.adapter.AdapterDatasetModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.adapter.AdapterMetadataModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.standard.StdDataSetModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.standard.StdMetaDataModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.service.adapter.AdapterDatasetService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.service.adapter.AdapterMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.util.GetChineseFirst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.dao.SQLGeneralDAO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.util.springutil.SpringBeanUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Scope; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -25,10 +28,19 @@ public class MetatdataStandardExistStrategy extends SQLGeneralDAO { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private IStdMetaDataModelDao stdMetaDataModelDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private AdapterMetadataService adapterMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private IStdDataSetModelDao stdDataSetModelDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private AdapterDatasetService adapterDatasetService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MetatdataStandardExistStrategy(IStdMetaDataModelDao stdMetaDataModelDao){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.stdMetaDataModelDao = stdMetaDataModelDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public AdapterDatasetService getAdapterDatasetService() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return adapterDatasetService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void setAdapterDatasetService(AdapterDatasetService adapterDatasetService) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.adapterDatasetService = adapterDatasetService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MetatdataStandardExistStrategy(IStdMetaDataModelDao stdMetaDataModelDao) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        this.stdMetaDataModelDao = stdMetaDataModelDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public IStdMetaDataModelDao getStdMetaDataModelDao() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return stdMetaDataModelDao; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -56,6 +68,7 @@ public class MetatdataStandardExistStrategy extends SQLGeneralDAO { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MetatdataStandardExistStrategy() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 对传进来的StdeMetadata进行匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -65,35 +78,47 @@ public class MetatdataStandardExistStrategy extends SQLGeneralDAO { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean match(AdapterMetadataModel strategyMetadata,MetadataMatchVO matchVO, String adapter_std_version,String version ) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean match(AdapterMetadataModel strategyMetadata, MetadataMatchVO matchVO, String std_version, String adapter_std_version, String version) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean flag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String metadataNameFirstCode= GetChineseFirst.cn2py(strategyMetadata.getStdMetadataName());//待匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<AdapterMetadataModel> adapterMetadatas=matchVO.getCodeAdapter().get(metadataNameFirstCode);//已存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(adapterMetadatas!=null&&adapterMetadatas.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取待适配的数据集名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer unAdaptDatasetId = strategyMetadata.getStdDatasetId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StdDataSetModel stdDataset = stdDataSetModelDao.getDatasetName(adapter_std_version, unAdaptDatasetId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String stdDatasetName = stdDataset.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (AdapterMetadataModel stdeMetadataTemp : adapterMetadatas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //利用名字來匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(stdeMetadataTemp.getStdMetadataName().contains(strategyMetadata.getStdMetadataName())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String orgMetadataName= stdeMetadataTemp.getAdapterMetadataName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //根据名字查找出 该项目下面的数据元名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<StdMetaDataModel> metadataTemps = stdMetaDataModelDao.getMetadata(adapter_std_version,orgMetadataName,stdDatasetName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(metadataTemps!=null&&metadataTemps.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String adapterInfo = "1";//找到默认为疑似适配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(metadataTemps.size()==1){//找到条数为1,默认为完全适配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            adapterInfo="2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String metadataNameFirstCode = GetChineseFirst.cn2py(strategyMetadata.getStdMetadataName());//待匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<AdapterMetadataModel> adapterMetadatas = matchVO.getCodeAdapter().get(metadataNameFirstCode);//已存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (adapterMetadatas != null && adapterMetadatas.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //获取待适配的数据集名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Integer unAdaptStdId = strategyMetadata.getStdDatasetId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                StdDataSetModel stdDataset = stdDataSetModelDao.getDatasetName(std_version, unAdaptStdId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                StdDataSetModel adapterDataset = stdDataSetModelDao.getDatasetName(adapter_std_version, unAdaptStdId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String stdDatasetName = stdDataset.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (AdapterMetadataModel stdeMetadataTemp : adapterMetadatas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //利用名字來匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (stdeMetadataTemp.getStdMetadataName().contains(strategyMetadata.getStdMetadataName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String orgMetadataName = stdeMetadataTemp.getAdapterMetadataName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        //根据名字查找出 该项目下面的数据元名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        List<StdMetaDataModel> metadataTemps = stdMetaDataModelDao.getMetadata(adapter_std_version, orgMetadataName, stdDatasetName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (metadataTemps != null && metadataTemps.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String adapterInfo = "1";//找到默认为疑似适配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (metadataTemps.size() == 1) {//找到条数为1,默认为完全适配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                adapterInfo = "2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            StdMetaDataModel orgMetadata = metadataTemps.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            //保存适配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            adapterMetadataService.saveAdapt(strategyMetadata, orgMetadata, version, adapterInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        StdMetaDataModel orgMetadata=metadataTemps.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        //保存适配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        adapterMetadataService.saveAdapt(strategyMetadata, orgMetadata, version,adapterInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        flag=true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (adapterDataset != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    AdapterDatasetModel entity = adapterDatasetService.getAdapterDatasetByCode(version, adapterDataset.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    adapterDatasetService.saveAdaptDataset(entity,adapterDataset,version); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return flag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |