|  | @ -2,35 +2,22 @@ package com.yihu.ehr.standard.service.adapter;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.JsonNode;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.ehr.common.Services;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.dao.intf.ICrawlerDao;
 | 
	
		
			
				|  |  | 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.DtoAdapterScheme;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.resultModel.DtoCrawlerDataSet;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.resultModel.DtoSchemeVersionModel;
 | 
	
		
			
				|  |  | 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.resource.service.IStdService;
 | 
	
		
			
				|  |  | 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.adapter.resultModel.AdapterSchemeResultDetailModel;
 | 
	
		
			
				|  |  | import com.yihu.ehr.standard.model.adapter.resultModel.AdapterSchemeResultModel;
 | 
	
		
			
				|  |  | 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;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.annotation.Resource;
 | 
	
		
			
				|  |  | import java.io.IOException;
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.HashMap;
 | 
	
	
		
			
				|  | @ -46,13 +33,6 @@ public class AdapterSchemeService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static final String BEAN_ID = "AdapterSchemeService";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Resource(name = Services.StdService)
 | 
	
		
			
				|  |  |     private IStdService stdManager;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Resource(name = "CrawlerDao")
 | 
	
		
			
				|  |  |     private ICrawlerDao crawlerDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public DetailModelResult getEntityList(String query, String order, Integer limit, Integer offset) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List list = getEntityList(AdapterSchemeModel.class, query, order, limit, offset);
 | 
	
	
		
			
				|  | @ -229,14 +209,14 @@ public class AdapterSchemeService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |                 stdVersionMap.put(model.getVersion(), model);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             List<SchemeResultDetailModel> resultDetailModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |             Map<String, SchemeResultDetailModel> resultDetailModelMap = new HashMap<>();
 | 
	
		
			
				|  |  |             Map<String, SchemeResultDetailModel> resultDetailModelCheckMap = new HashMap<>();
 | 
	
		
			
				|  |  |             Map<String, SchemeResultDetailModel> resultDetailModelAddMap = new HashMap<>();
 | 
	
		
			
				|  |  |             List<AdapterSchemeResultDetailModel> resultDetailModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |             Map<String, AdapterSchemeResultDetailModel> resultDetailModelMap = new HashMap<>();
 | 
	
		
			
				|  |  |             Map<String, AdapterSchemeResultDetailModel> resultDetailModelCheckMap = new HashMap<>();
 | 
	
		
			
				|  |  |             Map<String, AdapterSchemeResultDetailModel> resultDetailModelAddMap = new HashMap<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for (AdapterSchemeModel schemeModel : adapterSchemeModelList) {
 | 
	
		
			
				|  |  |                 String id = "scheme" + schemeModel.getId();
 | 
	
		
			
				|  |  |                 SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel();
 | 
	
		
			
				|  |  |                 AdapterSchemeResultDetailModel resultDetailModel = new AdapterSchemeResultDetailModel();
 | 
	
		
			
				|  |  |                 resultDetailModel.setId(id);
 | 
	
		
			
				|  |  |                 resultDetailModel.setPid("");
 | 
	
		
			
				|  |  |                 resultDetailModel.setType(0);
 | 
	
	
		
			
				|  | @ -261,7 +241,7 @@ public class AdapterSchemeService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |             for (AdapterSchemeVersionModel versionModel : versionModelList) {
 | 
	
		
			
				|  |  |                 String pid = "scheme" + versionModel.getSchemeId();
 | 
	
		
			
				|  |  |                 String id = "version" + versionModel.getId();
 | 
	
		
			
				|  |  |                 SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel();
 | 
	
		
			
				|  |  |                 AdapterSchemeResultDetailModel resultDetailModel = new AdapterSchemeResultDetailModel();
 | 
	
		
			
				|  |  |                 resultDetailModel.setId(id);
 | 
	
		
			
				|  |  |                 resultDetailModel.setPid(pid);
 | 
	
		
			
				|  |  |                 resultDetailModel.setName(versionModel.getName());
 | 
	
	
		
			
				|  | @ -299,18 +279,18 @@ public class AdapterSchemeService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |         return false;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public DetailModelResult getSchemeList() {
 | 
	
		
			
				|  |  |     public DetailModelResult getAdapterSchemeResultModelList() {
 | 
	
		
			
				|  |  |         String schemeHql = "FROM AdapterSchemeModel";
 | 
	
		
			
				|  |  |         Query query = getCurrentSession().createQuery(schemeHql);
 | 
	
		
			
				|  |  |         List<AdapterSchemeModel> adapterSchemeModelList = query.list();
 | 
	
		
			
				|  |  |         List<DtoAdapterScheme> schemeList = new ArrayList<>();
 | 
	
		
			
				|  |  |         List<AdapterSchemeResultModel> schemeList = new ArrayList<>();
 | 
	
		
			
				|  |  |         DetailModelResult result=new DetailModelResult();
 | 
	
		
			
				|  |  |         for (AdapterSchemeModel schemeModel : adapterSchemeModelList) {
 | 
	
		
			
				|  |  |             String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId and publishStatus = 1";
 | 
	
		
			
				|  |  |             query = getCurrentSession().createQuery(adapterVersionHql);
 | 
	
		
			
				|  |  |             query.setParameter("schemeId", schemeModel.getId());
 | 
	
		
			
				|  |  |             List<AdapterSchemeVersionModel> versionModelList = query.list();
 | 
	
		
			
				|  |  |             DtoAdapterScheme resultDetailModel = new DtoAdapterScheme();
 | 
	
		
			
				|  |  |             AdapterSchemeResultModel resultDetailModel = new AdapterSchemeResultModel();
 | 
	
		
			
				|  |  |             resultDetailModel.setSchemeId(schemeModel.getId());
 | 
	
		
			
				|  |  |             resultDetailModel.setName(schemeModel.getName());
 | 
	
		
			
				|  |  |             resultDetailModel.setVersionList(versionModelList);
 | 
	
	
		
			
				|  | @ -319,165 +299,4 @@ public class AdapterSchemeService extends SQLGeneralDAO {
 | 
	
		
			
				|  |  |         result.setDetailModelList(schemeList);
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 新增或修改
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @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 适配方案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();
 | 
	
		
			
				|  |  |         if (jsonList!=null && jsonList.size()>0) {
 | 
	
		
			
				|  |  |             // 删除旧关联关系
 | 
	
		
			
				|  |  |             crawlerDao.deleteSchemeVersion(versionModel.getId());
 | 
	
		
			
				|  |  |             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");
 | 
	
		
			
				|  |  |                 // 保存编排关系
 | 
	
		
			
				|  |  |                 CrawlerFlowModel crawlerFlow = new CrawlerFlowModel();
 | 
	
		
			
				|  |  |                 crawlerFlow.setDatasetCode(to);
 | 
	
		
			
				|  |  |                 crawlerFlow.setInputDatasetCode(from);
 | 
	
		
			
				|  |  |                 crawlerFlow.setMetadataCode(toPort);
 | 
	
		
			
				|  |  |                 crawlerFlow.setInputMetadataCode(fromPort);
 | 
	
		
			
				|  |  |                 crawlerFlow.setSchemeVersionId(versionModel.getId());
 | 
	
		
			
				|  |  |                 saveEntity(crawlerFlow);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             // 删除编排头部信息
 | 
	
		
			
				|  |  |             crawlerDao.deleteCrawlerHead(versionModel.getId());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             for (Object item : entrances) {
 | 
	
		
			
				|  |  |                 JSONObject obj = JSONObject.fromObject(item);
 | 
	
		
			
				|  |  |                 String dataSet = obj.getString("dataSet");
 | 
	
		
			
				|  |  |                 String meta = obj.getString("meta");
 | 
	
		
			
				|  |  |                 //  保存入口数据集
 | 
	
		
			
				|  |  |                 CrawlerFlowHeadModel headModel = new CrawlerFlowHeadModel();
 | 
	
		
			
				|  |  |                 headModel.setSchemeVersionId(versionModel.getId());
 | 
	
		
			
				|  |  |                 headModel.setDatasetCode(dataSet);
 | 
	
		
			
				|  |  |                 headModel.setMetadataCode(meta);
 | 
	
		
			
				|  |  |                 saveEntity(headModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return new ActionResult(true, "保存成功!");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取任务编排数据集列表
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param schemeVersionId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public DetailModelResult getSchemeDataset(Integer schemeVersionId) throws Exception {
 | 
	
		
			
				|  |  |         String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE id = :id";
 | 
	
		
			
				|  |  |         Query query = getCurrentSession().createQuery(adapterVersionHql);
 | 
	
		
			
				|  |  |         query.setParameter("id", schemeVersionId);
 | 
	
		
			
				|  |  |         AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) query.uniqueResult();
 | 
	
		
			
				|  |  |         //获取适配数据集总和
 | 
	
		
			
				|  |  |         List<AdapterDatasetModel> datasetString = stdManager.getDatasetByScheme(versionModel.getVersion());
 | 
	
		
			
				|  |  |         JSONArray jsonArray = JSONArray.fromObject(datasetString);
 | 
	
		
			
				|  |  |         //获取编排数据集
 | 
	
		
			
				|  |  |         List<CrawlerDataSetModel> crawlerDataset = crawlerDao.getSchemeDataset(versionModel.getId());
 | 
	
		
			
				|  |  |         DetailModelResult re = new DetailModelResult();
 | 
	
		
			
				|  |  |         List<DtoCrawlerDataSet> list = new ArrayList<>();
 | 
	
		
			
				|  |  |         for (AdapterDatasetModel datasetModel:datasetString){
 | 
	
		
			
				|  |  |             DtoCrawlerDataSet obj = new DtoCrawlerDataSet();
 | 
	
		
			
				|  |  |             obj.setSchemeVersionId(schemeVersionId);
 | 
	
		
			
				|  |  |             obj.setDatasetId(datasetModel.getStdDatasetId());
 | 
	
		
			
				|  |  |             obj.setDatasetCode(datasetModel.getStdDatasetCode());
 | 
	
		
			
				|  |  |             obj.setDatasetName(datasetModel.getStdDatasetName());
 | 
	
		
			
				|  |  |             obj.setSchemeId(datasetModel.getSchemeId());
 | 
	
		
			
				|  |  |             if (crawlerDataset != null && crawlerDataset.size() > 0) {
 | 
	
		
			
				|  |  |                 for (CrawlerDataSetModel cDataSet : crawlerDataset) {
 | 
	
		
			
				|  |  |                     if (cDataSet.getDatasetId().equals(datasetModel.getId())) {
 | 
	
		
			
				|  |  |                         obj.setSchemeVersionId(cDataSet.getSchemeVersionId());
 | 
	
		
			
				|  |  |                         obj.setChecked("1");
 | 
	
		
			
				|  |  |                         break;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             list.add(obj);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         re.setDetailModelList(list);
 | 
	
		
			
				|  |  |         return re;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取任务编排 适配版本列表
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public DetailModelResult getSchemeVersionList() throws Exception {
 | 
	
		
			
				|  |  |         List<DtoSchemeVersionModel> list=new ArrayList<>();
 | 
	
		
			
				|  |  |         String adapterVersionHql = "FROM AdapterSchemeVersionModel ";
 | 
	
		
			
				|  |  |         Query query = getCurrentSession().createQuery(adapterVersionHql);
 | 
	
		
			
				|  |  |         List<AdapterSchemeVersionModel> modelList =  query.list();
 | 
	
		
			
				|  |  |         DetailModelResult re = new DetailModelResult();
 | 
	
		
			
				|  |  |         if (modelList !=null && modelList.size()> 0){
 | 
	
		
			
				|  |  |             for (AdapterSchemeVersionModel model:modelList){
 | 
	
		
			
				|  |  |                 List<CrawlerDataSetModel> crawlerDataset = crawlerDao.getSchemeDataset(model.getId());
 | 
	
		
			
				|  |  |                 String dataSets=getAppendDataSets(crawlerDataset);
 | 
	
		
			
				|  |  |                 DtoSchemeVersionModel dtoModel=new DtoSchemeVersionModel();
 | 
	
		
			
				|  |  |                 dtoModel.setSchemeId(model.getSchemeId());
 | 
	
		
			
				|  |  |                 dtoModel.setId(model.getId());
 | 
	
		
			
				|  |  |                 dtoModel.setVersion(model.getVersion());
 | 
	
		
			
				|  |  |                 dtoModel.setName(model.getName());
 | 
	
		
			
				|  |  |                 dtoModel.setDataSets(dataSets);
 | 
	
		
			
				|  |  |                 list.add(dtoModel);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         re.setDetailModelList(list);
 | 
	
		
			
				|  |  |         return re;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String getAppendDataSets(List<CrawlerDataSetModel> crawlerDataset ){
 | 
	
		
			
				|  |  |         StringBuffer buffer=new StringBuffer();
 | 
	
		
			
				|  |  |         for (CrawlerDataSetModel crawlerDataSetModel:crawlerDataset){
 | 
	
		
			
				|  |  |             buffer.append(crawlerDataSetModel.getDatasetName()).append(",");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return buffer.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |