| 
					
				 | 
			
			
				@ -8,6 +8,7 @@ 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.match.metadata.MetadataStrategyExecute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.match.metadata.MetatdataStandardNameStrategy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.adapter.AdapterDatasetModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.adapter.AdapterDictModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.adapter.AdapterMetadataModel; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -16,6 +17,8 @@ import com.yihu.hos.standard.model.standard.StdDataSetModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.model.standard.StdMetaDataModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.service.bo.AdapterVersion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.service.bo.StandardVersion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.service.standard.StdMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.standard.util.GetChineseFirst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.constant.ErrorCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.constant.SqlConstants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.dao.SQLGeneralDAO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -23,8 +26,10 @@ import com.yihu.hos.web.framework.exception.ApiException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.model.DetailModelResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.model.Result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.model.TreeView; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.util.springutil.SpringBeanUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.util.sql.BeanTransformer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.hos.web.framework.util.sql.SqlCreator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.collections.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.hibernate.Query; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.hibernate.Session; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -55,6 +60,11 @@ public class AdapterDatasetService extends SQLGeneralDAO { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private IStdDataSetModelDao stdDataSetModelDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private StdMetadataService stdMetadataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private AdapterDatasetService adapterDatasetService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public AdapterDatasetService() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -640,24 +650,66 @@ public class AdapterDatasetService extends SQLGeneralDAO { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MetadataMatchVO matchVO = new MetadataMatchVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        matchVO.setCodeAdapter(matchVO.geNameGroup(adapterMetadataModel)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //設置匹配的机构数据緩存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<StdMetaDataModel> orgMetadatas = stdMetadataService.getList(adapter_std_version, null, null, null, null, null);//查找出机构所有的metadatas 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (StdMetaDataModel stdMetadata:orgMetadatas){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            MetatdataStandardNameStrategy.getNameMap().put(stdMetadata.getName(),stdMetadata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            MetatdataStandardNameStrategy.getRemarkMap().put(stdMetadata.getDefinition(),stdMetadata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //执行匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MetadataStrategyExecute.setFirst(version, unAdapterMetadataModels.size());//设置第一次匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> sqlList = new ArrayList<String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (AdapterMetadataModel unAdapterMetadataModel : unAdapterMetadataModels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            threadPoolTaskExecutor.execute(new MetadataStrategyExecute(unAdapterMetadataModel, matchVO, std_version,adapter_std_version,version, stdMetaDataModelDao,stdDataSetModelDao,adapterMetadataService)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String metadataNameFirstCode = GetChineseFirst.cn2py(unAdapterMetadataModel.getStdMetadataName());//待匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<AdapterMetadataModel> adapterMetadatas = matchVO.getCodeAdapter().get(metadataNameFirstCode);//已存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (adapterMetadatas != null && adapterMetadatas.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //获取待适配的数据集名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Integer unAdaptStdId = unAdapterMetadataModel.getStdDatasetId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                StdDataSetModel adapterDataset = stdDataSetModelDao.getDatasetName(adapter_std_version, unAdaptStdId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (adapterDataset != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    AdapterDatasetModel entity = adapterDatasetService.getAdapterDatasetByCode(version, adapterDataset.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String sqrSql = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(null != entity){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        sqrSql = adapterDatasetService.saveAdaptDatasetSql(entity, adapterDataset, version); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(null != sqrSql && !"".equals(sqrSql)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        sqlList.add(sqrSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(CollectionUtils.isNotEmpty(sqlList)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            super.insertBatch(sqlList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void saveAdaptDataset(AdapterDatasetModel strategyDataset,StdDataSetModel orgDataset,String version) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        strategyDataset.setAdapterDatasetId(orgDataset.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        strategyDataset.setAdapterDatasetCode(orgDataset.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        strategyDataset.setAdapterDatasetName(orgDataset.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(strategyDataset)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SqlCreator sqlCreator = new SqlCreator(AdapterDatasetModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = sqlCreator.updateDataByTableKey(new AdapterVersion(version).getDataSetTableName(), jsonNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Query query = getExeuteQuery(sqlCreator, sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        query.executeUpdate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null != strategyDataset){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            strategyDataset.setAdapterDatasetId(orgDataset.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            strategyDataset.setAdapterDatasetCode(orgDataset.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            strategyDataset.setAdapterDatasetName(orgDataset.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(strategyDataset)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SqlCreator sqlCreator = new SqlCreator(AdapterDatasetModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sql = sqlCreator.updateDataByTableKey(new AdapterVersion(version).getDataSetTableName(), jsonNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Query query = getExeuteQuery(sqlCreator, sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            query.executeUpdate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String saveAdaptDatasetSql(AdapterDatasetModel strategyDataset,StdDataSetModel orgDataset,String version) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuilder sqlBuffer = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sqlBuffer.append(SqlConstants.UPDATE + new AdapterVersion(version).getDataSetTableName() + SqlConstants.SET); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sqlBuffer.append(" adapter_dataset_id = " + orgDataset.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sqlBuffer.append(",adapter_dataset_code = '" + orgDataset.getCode() + "'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sqlBuffer.append(",adapter_dataset_name = '" + orgDataset.getName() + "'"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sqlBuffer.append(" where id=" + strategyDataset.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return sqlBuffer.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |