|  | @ -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, "保存成功!");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |