| 
					
				 | 
			
			
				@ -2,17 +2,23 @@ package com.yihu.ehr.standard.service.adapter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.JsonNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.crawler.model.flow.CrawlerFlowHeadModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.crawler.model.flow.CrawlerFlowModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.framework.common.dao.SQLGeneralDAO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.framework.constrant.Constants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.framework.model.ActionResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.framework.model.DetailModelResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.framework.model.Result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.framework.util.operator.CollectionUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.framework.util.operator.StringUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.standard.model.adapter.resultModel.SchemeResultDetailModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.standard.model.standard.StandardModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.ehr.standard.model.standard.StandardVersionModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import net.sf.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import net.sf.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.hibernate.Query; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -277,4 +283,120 @@ public class AdapterSchemeService extends SQLGeneralDAO { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<SchemeResultDetailModel> getSchemeList2() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String schemeHql = "FROM AdapterSchemeModel"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Query query = getCurrentSession().createQuery(schemeHql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<AdapterSchemeModel> adapterSchemeModelList = query.list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SchemeResultDetailModel> schemeList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (AdapterSchemeModel schemeModel : adapterSchemeModelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            query = getCurrentSession().createQuery(adapterVersionHql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            query.setParameter("schemeId", schemeModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<AdapterSchemeVersionModel> versionModelList = query.list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String id = "" + schemeModel.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultDetailModel.setId(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultDetailModel.setPid(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultDetailModel.setType(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultDetailModel.setName(schemeModel.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultDetailModel.setVersionList(versionModelList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            schemeList.add(resultDetailModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return schemeList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 新增或修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ActionResult saveOrUpdateSchemeList(String json) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray jsonList = JSONArray.fromObject(json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Object item : jsonList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject obj = JSONObject.fromObject(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (obj.containsKey("id") && obj.getString("id").length() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String id = obj.getString("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                AdapterSchemeVersionModel schemeVersion = (AdapterSchemeVersionModel) JSONObject.toBean(obj, AdapterSchemeVersionModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                updateEntity(schemeVersion); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                AdapterSchemeVersionModel schemeVersion = (AdapterSchemeVersionModel) JSONObject.toBean(obj, AdapterSchemeVersionModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                saveEntity(schemeVersion); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new ActionResult(true, "保存成功!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 根据适配版本 获取数据集列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param schemeId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<AdapterDatasetModel> getAdapterDataSets(Integer schemeId,String version){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<AdapterDatasetModel> list=new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId and version = :version"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Query query = getCurrentSession().createQuery(adapterVersionHql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        query.setParameter("schemeId", schemeId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        query.setParameter("version", version); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        AdapterSchemeVersionModel versionModel =(AdapterSchemeVersionModel) query.uniqueResult(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String tableName="adapter_dataset_"+versionModel.getVersion(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String adapterDataSetSql = "select * FROM "+tableName+" WHERE scheme_id = :schemeId"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Query dataSetQuery = getCurrentSession().createSQLQuery(adapterDataSetSql).addEntity(AdapterDatasetModel.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dataSetQuery.setParameter("schemeId", schemeId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<AdapterDatasetModel> adapterDataSet=dataSetQuery.list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return adapterDataSet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 保存编排映射关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param schemeId 适配方案ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param version 适配方案版本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param json  映射数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ActionResult saveDataSetRelation(Integer schemeId,String version,String json) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject root = JSONObject.fromObject(json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray jsonList = root.getJSONArray("lines"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray entrances = root.getJSONArray("entrances"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId and version = :version"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Query query = getCurrentSession().createQuery(adapterVersionHql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        query.setParameter("schemeId", schemeId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        query.setParameter("version", version); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        AdapterSchemeVersionModel versionModel =(AdapterSchemeVersionModel) query.uniqueResult(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Object item : jsonList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject obj = JSONObject.fromObject(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String from = obj.getString("from"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String to = obj.getString("to"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String fromPort = obj.getString("fromPort"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String toPort = obj.getString("toPort"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //TODO 保存编排关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            CrawlerFlowModel crawlerFlow=new CrawlerFlowModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            crawlerFlow.setDatasetCode(to); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            crawlerFlow.setInputDatasetCode(from); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            crawlerFlow.setMetadataCode(toPort); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            crawlerFlow.setInputMetadataCode(fromPort); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            crawlerFlow.setSchemeVersionId(versionModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveEntity(crawlerFlow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Object item : entrances) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject obj = JSONObject.fromObject(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String dataSet = obj.getString("dataSet"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String meta = obj.getString("meta"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //TODO  保存入口数据集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            CrawlerFlowHeadModel headModel=new CrawlerFlowHeadModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            headModel.setSchemeVersionId(versionModel.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            headModel.setDatasetCode(dataSet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            headModel.setMetadataCode(meta); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveEntity(headModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new ActionResult(true, "保存成功!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |