|  | @ -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;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |