Browse Source

Merge branch 'master' of zlf/esb into master

esb 9 năm trước cách đây
mục cha
commit
87e62efd3e
18 tập tin đã thay đổi với 255 bổ sung354 xóa
  1. 3 3
      Hos-resource/src/main/java/com/yihu/ehr/crawler/controller/CrawlerController.java
  2. 0 47
      Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerDao.java
  3. 26 0
      Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerDatasetDao.java
  4. 13 0
      Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerFlowDao.java
  5. 16 0
      Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerFlowHeadDao.java
  6. 0 28
      Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/intf/ICrawlerDao.java
  7. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/resultModel/DtoCrawlerDataSet.java
  8. 1 4
      Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/resultModel/DtoSchemeVersionModel.java
  9. 168 0
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerService.java
  10. 0 64
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/JobArrangeManager.java
  11. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/resource/service/IStdService.java
  12. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/StdService.java
  13. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/resultModel/SchemeResultDetailModel.java
  14. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/resultModel/DtoAdapterScheme.java
  15. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/resultModel/SchemeVersionResultDetailModel.java
  16. 11 192
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeService.java
  17. 4 4
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeVersionService.java
  18. 3 2
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StandardService.java

+ 3 - 3
Hos-resource/src/main/java/com/yihu/ehr/crawler/controller/CrawlerController.java

@ -2,7 +2,7 @@ package com.yihu.ehr.crawler.controller;
import com.yihu.ehr.crawler.model.patient.Patient;
import com.yihu.ehr.crawler.service.CrawlerManager;
import com.yihu.ehr.crawler.service.JobArrangeManager;
import com.yihu.ehr.crawler.service.CrawlerService;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.framework.util.operator.StringUtil;
import io.swagger.annotations.Api;
@ -27,7 +27,7 @@ import javax.annotation.Resource;
public class CrawlerController {
    @Resource
    JobArrangeManager jobArrangeManager;
    CrawlerService crawlerService;
    @RequestMapping(value = "patient", method = RequestMethod.POST)
    @ApiOperation(value = "采集病人健康档案", produces = "application/json", notes = "采集病人健康档案")
@ -57,7 +57,7 @@ public class CrawlerController {
            @ApiParam(name = "job", value = "任务编排信息", required = true)
            @RequestParam(value = "job", required = true) String jobInfo) {
        try {
            jobArrangeManager.saveJobData(jobInfo);
            crawlerService.saveJobData(jobInfo);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("保存失败");

+ 0 - 47
Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerDao.java

@ -1,47 +0,0 @@
package com.yihu.ehr.crawler.dao;
import com.yihu.ehr.crawler.dao.intf.ICrawlerDao;
import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * Created by HZY on 2016/4/27.
 */
@Repository("CrawlerDao")
public class CrawlerDao extends SQLGeneralDAO implements ICrawlerDao {
    @Override
    public List<CrawlerDataSetModel> getSchemeDataset(Integer versionId) throws Exception {
        String sql = "select * from crawler_dataset where scheme_version_id='"+versionId+"'";
        return super.queryListBySql(sql, CrawlerDataSetModel.class);
    }
    @Override
    public void deleteSchemeVersion(Integer versionId) throws Exception {
        String sql = "delete from crawler_dataset where scheme_version_id='"+versionId+"'";
        super.execute(sql);
    }
    @Override
    public void deleteCrawlerHead(Integer versionId) throws Exception {
        String sql = "delete from crawler_flow_head where scheme_version_id='"+versionId+"'";
        super.execute(sql);
    }
    /**
     * 通过适配方案和版本号获取适配ID
     * @param schemeId
     * @param version
     * @return
     */
    public AdapterSchemeVersionModel getIdBySchemeAndVersion(String schemeId, String version) throws Exception {
        String sql = " select * from adapter_scheme_version o where 1=1 and o.scheme_id = '" + schemeId + "' and o.version = '"
                + version + "'";
        return super.queryObjBySql(sql, AdapterSchemeVersionModel.class);
    }
}

+ 26 - 0
Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerDatasetDao.java

@ -0,0 +1,26 @@
package com.yihu.ehr.crawler.dao;
import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * Created by HZY on 2016/4/27.
 */
@Repository("CrawlerDatasetDao")
public class CrawlerDatasetDao extends SQLGeneralDAO {
    public static final String BEAN_ID = "CrawlerDatasetDao";
    public List<CrawlerDataSetModel> getCrawlerDatasetList(Integer versionId) throws Exception {
        String sql = "select * from crawler_dataset where scheme_version_id='"+versionId+"'";
        return super.queryListBySql(sql, CrawlerDataSetModel.class);
    }
    public void deleteCrawlerDatasetList(Integer versionId) throws Exception {
        String sql = "delete from crawler_dataset where scheme_version_id='"+versionId+"'";
        super.execute(sql);
    }
}

+ 13 - 0
Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerFlowDao.java

@ -0,0 +1,13 @@
package com.yihu.ehr.crawler.dao;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import org.springframework.stereotype.Repository;
/**
 * Created by HZY on 2016/4/27.
 */
@Repository("CrawlerFlowDao")
public class CrawlerFlowDao extends SQLGeneralDAO {
    public static final String BEAN_ID = "CrawlerFlowDao";
}

+ 16 - 0
Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/CrawlerFlowHeadDao.java

@ -0,0 +1,16 @@
package com.yihu.ehr.crawler.dao;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import org.springframework.stereotype.Repository;
/**
 * Created by HZY on 2016/4/27.
 */
@Repository("CrawlerFlowHeadDao")
public class CrawlerFlowHeadDao extends SQLGeneralDAO {
    public static final String BEAN_ID = "CrawlerFlowHeadDao";
    public void deleteCrawlerFlowHeadList(Integer versionId) throws Exception {
        String sql = "delete from crawler_flow_head where scheme_version_id='"+versionId+"'";
        super.execute(sql);
    }
}

+ 0 - 28
Hos-resource/src/main/java/com/yihu/ehr/crawler/dao/intf/ICrawlerDao.java

@ -1,28 +0,0 @@
package com.yihu.ehr.crawler.dao.intf;
import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
import com.yihu.ehr.framework.common.dao.XSQLGeneralDAO;
import java.util.List;
/**
 * Created by HZY on 2016/4/27.
 */
public interface ICrawlerDao extends XSQLGeneralDAO {
    /**
     * 通过适配版本获取相关数据集
     */
    public List<CrawlerDataSetModel> getSchemeDataset(Integer versionId) throws Exception;
    /**
     * 删除编排适配版本
     * @param versionId
     * @return
     * @throws Exception
     */
    public void deleteSchemeVersion(Integer versionId) throws Exception;
    public void deleteCrawlerHead(Integer versionId) throws Exception;
}

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/resultModel/DtoCrawlerDataSet.java

@ -7,7 +7,7 @@ import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
 * 任务编排数据集关联
 */
public class DtoCrawlerDataSet extends CrawlerDataSetModel implements java.io.Serializable {
public class CrawlerDatasetResultDetailModel extends CrawlerDataSetModel implements java.io.Serializable {
	private String checked;

+ 1 - 4
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/resultModel/DtoSchemeVersionModel.java

@ -1,17 +1,14 @@
package com.yihu.ehr.crawler.model.flow.resultModel;
import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import java.io.Serializable;
import java.util.List;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2016/4/27.
 */
public class DtoSchemeVersionModel extends AdapterSchemeVersionModel implements Serializable {
public class CrawlerDatasetResultModel extends AdapterSchemeVersionModel implements Serializable {
    private String dataSets;
    public String getDataSets() {

+ 168 - 0
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerService.java

@ -0,0 +1,168 @@
package com.yihu.ehr.crawler.service;
import com.yihu.ehr.crawler.dao.CrawlerDatasetDao;
import com.yihu.ehr.crawler.dao.CrawlerFlowDao;
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.framework.model.ActionResult;
import com.yihu.ehr.framework.model.DetailModelResult;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.service.adapter.AdapterDatasetService;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeVersionService;
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;
@Transactional
@Service("CrawlerService")
public class CrawlerService {
    public static final String BEAN_ID = "CrawlerService";
    @Resource(name = AdapterSchemeVersionService.BEAN_ID)
    private AdapterSchemeVersionService adapterSchemeVersionService;
    @Resource(name = AdapterDatasetService.BEAN_ID)
    private AdapterDatasetService adapterDatasetService;
    @Resource(name = CrawlerDatasetDao.BEAN_ID)
    private CrawlerDatasetDao crawlerDatasetDao;
    @Resource(name = CrawlerFlowDao.BEAN_ID)
    private CrawlerFlowDao crawlerFlowDao;
    @Resource(name = CrawlerFlowHeadDao.BEAN_ID)
    private CrawlerFlowHeadDao crawlerFlowHeadDao;
    /**
     * 保存编排映射关系
     *
     * @param version  适配方案版本
     * @param json     映射数据
     * @return
     * @throws Exception
     */
    public ActionResult saveDataSetRelation(String version, String json) throws Exception {
        JSONObject root = JSONObject.fromObject(json);
        JSONArray jsonList = root.getJSONArray("lines");
        JSONArray entrances = root.getJSONArray("entrances");
        AdapterSchemeVersionModel versionModel = adapterSchemeVersionService.getByVersion(version);
        if (jsonList!=null && jsonList.size()>0) {
            // 删除旧关联关系
            crawlerDatasetDao.deleteCrawlerDatasetList(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());
                crawlerFlowDao.saveEntity(crawlerFlow);
            }
            // 删除编排头部信息
            crawlerFlowHeadDao.deleteCrawlerFlowHeadList(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);
                crawlerFlowHeadDao.saveEntity(headModel);
            }
        }
        return new ActionResult(true, "保存成功!");
    }
    /**
     * 获取任务编排数据集列表
     *
     * @param schemeVersionId
     * @return
     * @throws Exception
     */
    public DetailModelResult getSchemeDataset(Integer schemeVersionId) throws Exception {
        AdapterSchemeVersionModel versionModel = (AdapterSchemeVersionModel) adapterSchemeVersionService.get(schemeVersionId);
        //获取适配数据集总和
        List<AdapterDatasetModel> adapterDatasetModelList = adapterDatasetService.getDatasetList(AdapterDatasetModel.class, versionModel.getVersion(), null, null, null, null);
        //获取编排数据集
        List<CrawlerDataSetModel> crawlerDataset = crawlerDatasetDao.getCrawlerDatasetList(versionModel.getId());
        DetailModelResult re = new DetailModelResult();
        List<CrawlerDatasetResultDetailModel> list = new ArrayList<>();
        for (AdapterDatasetModel adapterDatasetModel : adapterDatasetModelList) {
            Integer datasetId = adapterDatasetModel.getAdapterDatasetId();
            //是否关联任务
            if (crawlerDataset != null && crawlerDataset.size() > 0) {
                CrawlerDatasetResultDetailModel obj = new CrawlerDatasetResultDetailModel();
                for (CrawlerDataSetModel cDataSet : crawlerDataset) {
                    if (cDataSet.getDatasetId() == 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;
    }
    /**
     * 保存任务编排数据
     * @param json
     * @return
     * @throws Exception
     */
    public void saveJobData(String json) throws Exception {
        JSONArray jsonList = JSONArray.fromObject(json);
        for(Object item : jsonList)
        {
            JSONObject obj = JSONObject.fromObject(item);
            String schemeId = obj.getString("schemeId");
            String version = obj.getString("version");
            AdapterSchemeVersionModel versionModel = adapterSchemeVersionService.getByVersion(version);
            JSONArray dataSets = obj.getJSONArray("dataSets");
            //保存数据集
            for (Object o : dataSets) {
                JSONObject dataSet =  JSONObject.fromObject(o);
                String datasetId = dataSet.getString("datasetId");
                String datasetCode = dataSet.getString("datasetCode");
                String datasetName = dataSet.getString("datasetName");
                CrawlerDataSetModel dataSetModel = new CrawlerDataSetModel();
                dataSetModel.setSchemeVersionId(versionModel.getId());
                dataSetModel.setSchemeId(Integer.valueOf(schemeId));
                dataSetModel.setDatasetId(Integer.valueOf(datasetId));
                dataSetModel.setDatasetCode(datasetCode);
                dataSetModel.setDatasetName(datasetName);
                crawlerDatasetDao.saveOrUpdateEntity(dataSetModel);
            }
            if (obj.containsKey("lines") && obj.containsKey("entrances")) {
                // TODO: 2016/4/27  保存编排关系
//                 saveDataSetRelation(schemeId, version, json);
            }
        }
    }
}

+ 0 - 64
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/JobArrangeManager.java

@ -1,64 +0,0 @@
package com.yihu.ehr.crawler.service;
import com.yihu.ehr.crawler.dao.CrawlerDao;
import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
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;
/**
 * @author Yingjie Chen
 * @version $$Revision$$
 * @date 2016/4/27
 */
@Service
public class JobArrangeManager {
    @Resource
    CrawlerDao crawlerDao;
    /**
     * 保存任务编排数据
     * @param json
     * @return
     * @throws Exception
     */
    @Transactional
    public void saveJobData(String json) throws Exception {
        JSONArray jsonList = JSONArray.fromObject(json);
        for(Object item : jsonList)
        {
            JSONObject obj = JSONObject.fromObject(item);
            String schemeId = obj.getString("schemeId");
            String version = obj.getString("version");
            AdapterSchemeVersionModel versionModel = crawlerDao.getIdBySchemeAndVersion(schemeId, version);
            JSONArray dataSets = obj.getJSONArray("dataSets");
            //保存数据集
            for (Object o : dataSets) {
                JSONObject dataSet =  JSONObject.fromObject(o);
                String datasetId = dataSet.getString("datasetId");
                String datasetCode = dataSet.getString("datasetCode");
                String datasetName = dataSet.getString("datasetName");
                CrawlerDataSetModel dataSetModel = new CrawlerDataSetModel();
                dataSetModel.setSchemeVersionId(versionModel.getId());
                dataSetModel.setSchemeId(Integer.valueOf(schemeId));
                dataSetModel.setDatasetId(Integer.valueOf(datasetId));
                dataSetModel.setDatasetCode(datasetCode);
                dataSetModel.setDatasetName(datasetName);
                crawlerDao.saveOrUpdateEntity(dataSetModel);
            }
            if (obj.containsKey("lines") && obj.containsKey("entrances")) {
                // TODO: 2016/4/27  保存编排关系
//                 saveDataSetRelation(schemeId, version, json);
            }
        }
    }
}  

+ 2 - 2
Hos-resource/src/main/java/com/yihu/ehr/resource/service/IStdService.java

@ -5,7 +5,7 @@ import com.yihu.ehr.framework.model.DictionaryResult;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.model.adapter.AdapterDictEntryModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterMetadataResultDetailModel;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterSchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
@ -27,7 +27,7 @@ public interface IStdService {
    /**
     * 获取适配方案列表
     */
    public List<SchemeVersionResultDetailModel> getSchemeVersion() throws Exception;
    public List<AdapterSchemeVersionResultDetailModel> getSchemeVersion() throws Exception;
    /**
     * 通过适配方案获取数据集列表

+ 2 - 2
Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/StdService.java

@ -8,7 +8,7 @@ import com.yihu.ehr.resource.service.IStdService;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.model.adapter.AdapterDictEntryModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterMetadataResultDetailModel;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterSchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
import com.yihu.ehr.standard.service.adapter.AdapterDatasetService;
@ -51,7 +51,7 @@ public class StdService implements IStdService {
    /**
     * 获取适配方案列表
     */
    public List<SchemeVersionResultDetailModel> getSchemeVersion() {
    public List<AdapterSchemeVersionResultDetailModel> getSchemeVersion() {
        return adapterSchemeVersion.getPublishedList();
    }

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/resultModel/SchemeResultDetailModel.java

@ -5,7 +5,7 @@ import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import java.io.Serializable;
import java.util.List;
public class SchemeResultDetailModel implements Serializable {
public class AdapterSchemeResultDetailModel implements Serializable {
    String id;
    String pid;
    String name;

+ 2 - 2
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/resultModel/DtoAdapterScheme.java

@ -1,4 +1,4 @@
package com.yihu.ehr.crawler.model.flow.resultModel;
package com.yihu.ehr.standard.model.adapter.resultModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
@ -10,7 +10,7 @@ import java.util.List;
 * @vsrsion 1.0
 * Created at 2016/4/27.
 */
public class DtoAdapterScheme {
public class AdapterSchemeResultModel {
    private Integer schemeId;
    private String name;
    List<AdapterSchemeVersionModel> versionList;

+ 2 - 2
Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/resultModel/SchemeVersionResultDetailModel.java

@ -7,7 +7,7 @@ import java.util.Date;
 *
 * @created lingfeng 2015/12/23.
 */
public class SchemeVersionResultDetailModel {
public class AdapterSchemeVersionResultDetailModel {
    private Integer id;
    private Integer schemeId;
    private String name;
@ -19,7 +19,7 @@ public class SchemeVersionResultDetailModel {
    private Integer publishStatus;
    private String path;
    public SchemeVersionResultDetailModel(){
    public AdapterSchemeVersionResultDetailModel(){
    }

+ 11 - 192
Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeService.java

@ -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();
    }
}

+ 4 - 4
Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeVersionService.java

@ -12,7 +12,7 @@ import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterSchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
@ -285,7 +285,7 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
        }
    }
    public List<SchemeVersionResultDetailModel> getPublishedList() {
    public List<AdapterSchemeVersionResultDetailModel> getPublishedList() {
        try {
            Session session = getCurrentSession();
            Criteria criteria = session.createCriteria(AdapterSchemeVersionModel.class);
@ -306,9 +306,9 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
                schemeMap.put(schemeModel.getId(), schemeModel.getName());
            }
            List<SchemeVersionResultDetailModel> detailModelList = new ArrayList<>();
            List<AdapterSchemeVersionResultDetailModel> detailModelList = new ArrayList<>();
            for (AdapterSchemeVersionModel model : versionModelList) {
                SchemeVersionResultDetailModel detailModel = new SchemeVersionResultDetailModel();
                AdapterSchemeVersionResultDetailModel detailModel = new AdapterSchemeVersionResultDetailModel();
                detailModel.setId(model.getId());
                detailModel.setName(model.getName());
                detailModel.setSchemeId(model.getSchemeId());

+ 3 - 2
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StandardService.java

@ -338,8 +338,9 @@ public class StandardService extends SQLGeneralDAO {
                e.printStackTrace();
            }
        }
        String code = getStandardParam(Constants.STANDARD).getCode();
        String orgCode = getStandardParam(Constants.STANDARD).getOrgCode();
        StandardParamResultModel standardParam = getStandardParam(Constants.STANDARD);
        String code = standardParam.getCode();
        String orgCode = standardParam.getOrgCode();
        List<SystemOrganization> publisherModelList = new ArrayList<>();
        Criteria criteria = getCurrentSession().createCriteria(StandardModel.class);