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