|
@ -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<>();
|
|
|
DetailModelResult result=new DetailModelResult();
|
|
|
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());
|
|
|
saveOrUpdateEntity(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);
|
|
|
saveOrUpdateEntity(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();
|
|
|
}
|
|
|
|
|
|
}
|