|
@ -2,17 +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.DataGridResult;
|
|
|
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;
|
|
@ -25,6 +30,7 @@ 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;
|
|
@ -40,6 +46,13 @@ 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);
|
|
@ -232,7 +245,7 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
resultDetailModel.setStdVersion(stdVersionMap.get(schemeModel.getStdVersion()).getVersion());
|
|
|
resultDetailModel.setStdVersionName(stdVersionMap.get(schemeModel.getStdVersion()).getName());
|
|
|
resultDetailModel.setPublisher(stdMap.get(schemeModel.getAdapterStdId()) == null ? "" : stdMap.get(schemeModel.getAdapterStdId()).getPublisher());
|
|
|
resultDetailModel.setAdapterName(stdMap.get(schemeModel.getAdapterStdId())==null?"":stdMap.get(schemeModel.getAdapterStdId()).getName());
|
|
|
resultDetailModel.setAdapterName(stdMap.get(schemeModel.getAdapterStdId()) == null ? "" : stdMap.get(schemeModel.getAdapterStdId()).getName());
|
|
|
if (stdVersionMap.get(schemeModel.getAdapterStdVersion()) != null) {
|
|
|
resultDetailModel.setAdapterVersionName(stdVersionMap.get(schemeModel.getAdapterStdVersion()).getName());
|
|
|
resultDetailModel.setAdapterStdVersion(stdVersionMap.get(schemeModel.getAdapterStdVersion()).getVersion());
|
|
@ -276,7 +289,7 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
}
|
|
|
|
|
|
public boolean existSchemeVersionValid(Integer schemeId) {
|
|
|
String hql="FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId";
|
|
|
String hql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId";
|
|
|
Query query = getCurrentSession().createQuery(hql);
|
|
|
query.setParameter("schemeId", schemeId);
|
|
|
List<AdapterSchemeVersionModel> schemeVersionModelList = query.list();
|
|
@ -286,27 +299,25 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public List<SchemeResultDetailModel> getSchemeList2() {
|
|
|
public DetailModelResult getSchemeList() {
|
|
|
String schemeHql = "FROM AdapterSchemeModel";
|
|
|
Query query = getCurrentSession().createQuery(schemeHql);
|
|
|
List<AdapterSchemeModel> adapterSchemeModelList = query.list();
|
|
|
List<SchemeResultDetailModel> schemeList = new ArrayList<>();
|
|
|
List<DtoAdapterScheme> schemeList = new ArrayList<>();
|
|
|
DetailModelResult result=new DetailModelResult();
|
|
|
for (AdapterSchemeModel schemeModel : adapterSchemeModelList) {
|
|
|
String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId";
|
|
|
String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId and publishStatus = 1";
|
|
|
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);
|
|
|
DtoAdapterScheme resultDetailModel = new DtoAdapterScheme();
|
|
|
resultDetailModel.setSchemeId(schemeModel.getId());
|
|
|
resultDetailModel.setName(schemeModel.getName());
|
|
|
resultDetailModel.setVersionList(versionModelList);
|
|
|
schemeList.add(resultDetailModel);
|
|
|
}
|
|
|
|
|
|
return schemeList;
|
|
|
result.setDetailModelList(schemeList);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -335,27 +346,6 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据适配版本 获取数据集列表
|
|
|
*
|
|
|
* @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;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存编排映射关系
|
|
@ -375,33 +365,112 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
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);
|
|
|
}
|
|
|
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");
|
|
|
//TODO 保存入口数据集
|
|
|
CrawlerFlowHeadModel headModel = new CrawlerFlowHeadModel();
|
|
|
headModel.setSchemeVersionId(versionModel.getId());
|
|
|
headModel.setDatasetCode(dataSet);
|
|
|
headModel.setMetadataCode(meta);
|
|
|
saveEntity(headModel);
|
|
|
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 (Object item : jsonArray) {
|
|
|
JSONObject jsonItem = JSONObject.fromObject(item);
|
|
|
String datasetId = jsonItem.getString("adapterDatasetId");
|
|
|
//是否关联任务
|
|
|
if (crawlerDataset != null && crawlerDataset.size() > 0) {
|
|
|
DtoCrawlerDataSet obj = new DtoCrawlerDataSet();
|
|
|
for (CrawlerDataSetModel cDataSet : crawlerDataset) {
|
|
|
if (cDataSet.getDatasetId().equals(datasetId)) {
|
|
|
obj.setSchemeVersionId(cDataSet.getSchemeVersionId());
|
|
|
obj.setDatasetId(cDataSet.getDatasetId());
|
|
|
obj.setDatasetCode(cDataSet.getDatasetCode());
|
|
|
obj.setDatasetName(cDataSet.getDatasetName());
|
|
|
obj.setSchemeId(cDataSet.getSchemeId());
|
|
|
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());
|
|
|
DtoSchemeVersionModel dtoModel=new DtoSchemeVersionModel();
|
|
|
dtoModel.setSchemeId(model.getSchemeId());
|
|
|
dtoModel.setId(model.getId());
|
|
|
dtoModel.setVersion(model.getVersion());
|
|
|
dtoModel.setName(model.getName());
|
|
|
dtoModel.setDataSets(crawlerDataset);
|
|
|
list.add(dtoModel);
|
|
|
}
|
|
|
}
|
|
|
re.setDetailModelList(list);
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
}
|