|  | @ -6,26 +6,25 @@ import com.yihu.ehr.crawler.dao.CrawlerFlowHeadDao;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.CrawlerFlowHeadModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.CrawlerFlowModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.resultModel.CrawlerDatasetResultDetailModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.resultModel.FlowEntrance;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.resultModel.FlowLines;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.resultModel.FlowMapping;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.resultModel.*;
 | 
	
		
			
				|  |  | 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.util.operator.StringUtil;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.model.adapter.AdapterMetadataModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.service.adapter.AdapterDatasetService;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.service.adapter.AdapterMetadataService;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.service.adapter.AdapterSchemeVersionService;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.service.bo.AdapterVersion;
 | 
	
		
			
				|  |  | import net.sf.json.JSONArray;
 | 
	
		
			
				|  |  | import net.sf.json.JSONObject;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.annotation.Resource;
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Objects;
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | @Transactional
 | 
	
		
			
				|  |  | @Service("CrawlerService")
 | 
	
	
		
			
				|  | @ -43,6 +42,8 @@ public class CrawlerService {
 | 
	
		
			
				|  |  |     private CrawlerFlowDao crawlerFlowDao;
 | 
	
		
			
				|  |  |     @Resource(name = CrawlerFlowHeadDao.BEAN_ID)
 | 
	
		
			
				|  |  |     private CrawlerFlowHeadDao crawlerFlowHeadDao;
 | 
	
		
			
				|  |  |     @Resource(name = AdapterMetadataService.BEAN_ID)
 | 
	
		
			
				|  |  |     private AdapterMetadataService adapterMetadataService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 保存编排映射关系
 | 
	
	
		
			
				|  | @ -101,10 +102,12 @@ public class CrawlerService {
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public DetailModelResult getSchemeDataset(Integer schemeVersionId) throws Exception {
 | 
	
		
			
				|  |  |     public DetailModelResult getSchemeDataset(Integer schemeVersionId,String datasetName) throws Exception {
 | 
	
		
			
				|  |  |         AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
 | 
	
		
			
				|  |  |         //获取适配数据集总和
 | 
	
		
			
				|  |  |         List<AdapterDatasetModel> adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), null, null, null, null);
 | 
	
		
			
				|  |  |         Map<String,Object> map = new HashMap<String,Object>();
 | 
	
		
			
				|  |  |         map.put("name", datasetName);
 | 
	
		
			
				|  |  |         List<AdapterDatasetModel> adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), net.sf.json.JSONObject.fromObject(map).toString(), null, null, null);
 | 
	
		
			
				|  |  |         //获取编排数据集
 | 
	
		
			
				|  |  |         List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
 | 
	
		
			
				|  |  |         DetailModelResult re = new DetailModelResult();
 | 
	
	
		
			
				|  | @ -172,22 +175,6 @@ public class CrawlerService {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取适配方案映射数据
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param schemeVersionId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public FlowMapping getFlowMappingDataset(Integer schemeVersionId) {
 | 
	
		
			
				|  |  |         FlowMapping flowMapping = new FlowMapping();
 | 
	
		
			
				|  |  |         List<FlowEntrance> entrances = getFlowEntrances(schemeVersionId);
 | 
	
		
			
				|  |  |         List<FlowLines> lines = getFlowLines(schemeVersionId);
 | 
	
		
			
				|  |  |         flowMapping.setSchemeVersionId(schemeVersionId);
 | 
	
		
			
				|  |  |         flowMapping.setEntrances(entrances);
 | 
	
		
			
				|  |  |         flowMapping.setLines(lines);
 | 
	
		
			
				|  |  |         return flowMapping;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<FlowEntrance> getFlowEntrances(Integer schemeVersionId) {
 | 
	
		
			
				|  |  |         List<FlowEntrance> entrances = new ArrayList<>();
 | 
	
		
			
				|  |  |         List<CrawlerFlowHeadModel> modelList = crawlerFlowHeadDao.getCrawlerFlowHeadList(schemeVersionId);
 | 
	
	
		
			
				|  | @ -266,7 +253,96 @@ public class CrawlerService {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return DetailModelResult.error("获取数据集失败");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取编排已选择的适配数据集
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param schemeVersionId
 | 
	
		
			
				|  |  |      * @param datasetIdStr
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<MappingDataset> getSchemeDatasetByChecked(Integer schemeVersionId, String datasetIdStr) throws Exception {
 | 
	
		
			
				|  |  |         AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
 | 
	
		
			
				|  |  |         //获取适配数据集总和
 | 
	
		
			
				|  |  |         AdapterVersion adapterVersion = new AdapterVersion(versionModel.getVersion());
 | 
	
		
			
				|  |  |         List<AdapterDatasetModel> adapterDatasetModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |         if (datasetIdStr != null && !"".equals(datasetIdStr)) {
 | 
	
		
			
				|  |  |             String[] datasetIdList = datasetIdStr.split(",");
 | 
	
		
			
				|  |  |             List<Integer> newDatasetIdList = new ArrayList<>();
 | 
	
		
			
				|  |  |             for (String datasetId : datasetIdList) {
 | 
	
		
			
				|  |  |                 if (!StringUtil.isStrEmpty(datasetId)) {
 | 
	
		
			
				|  |  |                     Integer newDatasetId = Integer.parseInt(datasetId);
 | 
	
		
			
				|  |  |                     newDatasetIdList.add(newDatasetId);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             adapterDatasetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, newDatasetIdList);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), null, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //获取编排数据集
 | 
	
		
			
				|  |  |         List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
 | 
	
		
			
				|  |  |         List<MappingDataset> list = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (AdapterDatasetModel datasetModel : adapterDatasetModelList) {
 | 
	
		
			
				|  |  |             MappingDataset obj = new MappingDataset();
 | 
	
		
			
				|  |  |             if (crawlerDataset != null && crawlerDataset.size() > 0) {
 | 
	
		
			
				|  |  |                 for (CrawlerDataSetModel cDataSet : crawlerDataset) {
 | 
	
		
			
				|  |  |                     if (cDataSet.getDatasetId().equals(datasetModel.getAdapterDatasetId())) {
 | 
	
		
			
				|  |  |                         List<MappingMetadata> metadatas = getMappingMetaDatasByDataset(versionModel.getVersion(), datasetModel.getAdapterDatasetId());
 | 
	
		
			
				|  |  |                         obj.setId(datasetModel.getStdDatasetId());
 | 
	
		
			
				|  |  |                         obj.setCode(datasetModel.getStdDatasetCode());
 | 
	
		
			
				|  |  |                         obj.setName(datasetModel.getStdDatasetName());
 | 
	
		
			
				|  |  |                         obj.setData(metadatas);
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             list.add(obj);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return list;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 返回前端映射数据元信息
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param adapterVersion 适配版本号
 | 
	
		
			
				|  |  |      * @param dataSetId      适配数据集ID
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<MappingMetadata> getMappingMetaDatasByDataset(String adapterVersion, Integer dataSetId) {
 | 
	
		
			
				|  |  |         List<AdapterMetadataModel> adapterMetadataModels = adapterMetadataService.getAdapterMetadataByDataset(adapterVersion, dataSetId);
 | 
	
		
			
				|  |  |         List<MappingMetadata> resultList = new ArrayList<>();
 | 
	
		
			
				|  |  |         if (adapterMetadataModels != null && adapterMetadataModels.size() > 0) {
 | 
	
		
			
				|  |  |             for (AdapterMetadataModel metadataModel : adapterMetadataModels) {
 | 
	
		
			
				|  |  |                 MappingMetadata metadata = new MappingMetadata();
 | 
	
		
			
				|  |  |                 metadata.setId(metadataModel.getAdapterMetadataId());
 | 
	
		
			
				|  |  |                 metadata.setCode(metadataModel.getAdapterMetadataCode());
 | 
	
		
			
				|  |  |                 metadata.setName(metadataModel.getAdapterMetadataName());
 | 
	
		
			
				|  |  |                 resultList.add(metadata);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return resultList;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取适配方案映射数据
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param schemeVersionId
 | 
	
		
			
				|  |  |      * @param datasetIdStr
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String getRelations(Integer schemeVersionId, String datasetIdStr) {
 | 
	
		
			
				|  |  |         JSONObject jsonObject = new JSONObject();
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List<MappingDataset> datasets = getSchemeDatasetByChecked(schemeVersionId, datasetIdStr);
 | 
	
		
			
				|  |  |             List<FlowLines> lines = getFlowLines(schemeVersionId);
 | 
	
		
			
				|  |  |             jsonObject.put("tables", datasets);
 | 
	
		
			
				|  |  |             jsonObject.put("rels", lines);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return jsonObject.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |