lingfeng 9 rokov pred
rodič
commit
2ec7986725

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

@ -0,0 +1,20 @@
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 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(String versionId) throws Exception {
        return null;
    }
}

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

@ -0,0 +1,18 @@
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(String versionId) throws Exception;
}

+ 63 - 0
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/CrawlerDataSetModel.java

@ -0,0 +1,63 @@
package com.yihu.ehr.crawler.model.flow;
import com.yihu.ehr.framework.model.Result;
import java.io.Serializable;
/**
 * 任务编排-数据集关系
 *
 * @created HZY 2016/4/27.
 */
public class CrawlerDataSetModel extends Result implements Serializable {
    private Integer schemeId;
    private Integer schemeVersionId;
    private Integer datasetId;
    private String datasetCode;
    private String datasetName;
    public Integer getSchemeId() {
        return schemeId;
    }
    public void setSchemeId(Integer schemeId) {
        this.schemeId = schemeId;
    }
    public Integer getSchemeVersionId() {
        return schemeVersionId;
    }
    public void setSchemeVersionId(Integer schemeVersionId) {
        this.schemeVersionId = schemeVersionId;
    }
    public Integer getDatasetId() {
        return datasetId;
    }
    public void setDatasetId(Integer datasetId) {
        this.datasetId = datasetId;
    }
    public String getDatasetCode() {
        return datasetCode;
    }
    public void setDatasetCode(String datasetCode) {
        this.datasetCode = datasetCode;
    }
    public String getDatasetName() {
        return datasetName;
    }
    public void setDatasetName(String datasetName) {
        this.datasetName = datasetName;
    }
}

+ 0 - 35
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/flow/CrawlerFlow.java

@ -1,35 +0,0 @@
package com.yihu.ehr.crawler.model.flow;
import com.yihu.ehr.framework.model.Result;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
 * 标准基本信息
 *
 * @created Airhead 2015/12/23.
 */
public class CrawlerFlow extends Result implements Serializable {
    private String datasetCode;
    private List<String> metadataCodeList = new ArrayList<>();
    public String getDatasetCode() {
        return datasetCode;
    }
    public void setDatasetCode(String datasetCode) {
        this.datasetCode = datasetCode;
    }
    public List<String> getMetadataCodeList() {
        return metadataCodeList;
    }
    public void setMetadataCodeList(List<String> metadataCodeList) {
        this.metadataCodeList = metadataCodeList;
    }
}

+ 202 - 134
Hos-resource/src/main/java/com/yihu/ehr/datacollect/controller/DataCollectController.java

@ -1,5 +1,6 @@
package com.yihu.ehr.datacollect.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.common.Services;
import com.yihu.ehr.datacollect.model.RsJobConfig;
import com.yihu.ehr.datacollect.model.RsJobLog;
@ -7,10 +8,15 @@ import com.yihu.ehr.datacollect.service.intf.IDatacollectManager;
import com.yihu.ehr.datacollect.service.intf.IDatacollectService;
import com.yihu.ehr.framework.constrant.DateConvert;
import com.yihu.ehr.framework.model.ActionResult;
import com.yihu.ehr.framework.model.DictItem;
import com.yihu.ehr.framework.model.DictionaryResult;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.resource.service.IStdService;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeResultDetailModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeService;
import com.yihu.ehr.system.service.intf.IDatasourceManager;
import net.sf.json.JSONArray;
import org.apache.commons.beanutils.BeanUtils;
@ -19,6 +25,7 @@ import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
@ -45,14 +52,19 @@ public class DataCollectController extends BaseController {
    @Resource(name = Services.Datasource)
    IDatasourceManager datasource;
    @Resource(name = AdapterSchemeService.BEAN_ID)
    private AdapterSchemeService adapterSchemeService;
    /**************************** 任务管理 ************************************************/
    /****************************
     * 任务管理
     ************************************************/
    /*
    任务配置
     */
    @RequestMapping("configJob")
    public String configJob(Model model) {
        model.addAttribute("contentPage","/datacollect/configJob");
        model.addAttribute("contentPage", "/datacollect/configJob");
        return "partView";
    }
@ -60,7 +72,7 @@ public class DataCollectController extends BaseController {
    任务新增/编辑
     */
    @RequestMapping("editorJob")
    public String editorJob(Model model,String jobId) {
    public String editorJob(Model model, String jobId) {
        try {
            //是否编辑
            if (jobId != null && jobId.length() > 0) {
@ -74,13 +86,11 @@ public class DataCollectController extends BaseController {
            //获取方案列表
            List data = stdService.getSchemeVersion();
            JSONArray jsonArray = JSONArray.fromObject(data);
            model.addAttribute("schemeList", "{\"detailModelList\":"+(CollectionUtil.isEmpty(data)?"[]":jsonArray)+"}");
            model.addAttribute("schemeList", "{\"detailModelList\":" + (CollectionUtil.isEmpty(data) ? "[]" : jsonArray) + "}");
            model.addAttribute("contentPage", "/datacollect/editorJob");
            return "pageView";
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            model.addAttribute("contentPage", "/datacollect/editorJob");
            return "pageView";
        }
@ -91,14 +101,12 @@ public class DataCollectController extends BaseController {
    */
    @RequestMapping("getJob")
    @ResponseBody
    public Result getJob(String name,int page, int rows){
    public Result getJob(String name, int page, int rows) {
        try {
            Map<String, Object> map = new HashMap<>();
            map.put("name", name);
            return datacollect.getJobList(map, page, rows);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
@ -108,12 +116,10 @@ public class DataCollectController extends BaseController {
     */
    @RequestMapping("getSchemeDataset")
    @ResponseBody
    public Result getSchemeDataset(String schemeId,String schemeVersion,String jobId){
        try{
            return datacollect.getSchemeDataset(schemeId,schemeVersion, jobId);
        }
        catch (Exception ex)
        {
    public Result getSchemeDataset(String schemeId, String schemeVersion, String jobId) {
        try {
            return datacollect.getSchemeDataset(schemeId, schemeVersion, jobId);
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
@ -123,12 +129,10 @@ public class DataCollectController extends BaseController {
     */
    @RequestMapping("getSchemeDatasetCol")
    @ResponseBody
    public Result getSchemeDatasetCol(String schemeId,String schemeVersion,String datasetId){
        try{
    public Result getSchemeDatasetCol(String schemeId, String schemeVersion, String datasetId) {
        try {
            return datacollect.getSchemeDatasetCol(schemeId, schemeVersion, datasetId);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
@ -146,10 +150,8 @@ public class DataCollectController extends BaseController {
            String cron = request.getParameter("cronExpression");
            String jobDataset = request.getParameter("jobDataset");
            return datacollect.addJob(obj,cron,jobDataset);
        }
        catch (Exception ex)
        {
            return datacollect.addJob(obj, cron, jobDataset);
        } catch (Exception ex) {
            return Result.error("新增任务失败!");
        }
    }
@ -167,10 +169,8 @@ public class DataCollectController extends BaseController {
            String cron = request.getParameter("cronExpression");
            String jobDataset = request.getParameter("jobDataset");
            return datacollect.updateJob(obj, cron,jobDataset);
        }
        catch (Exception ex)
        {
            return datacollect.updateJob(obj, cron, jobDataset);
        } catch (Exception ex) {
            return Result.error("修改任务失败!");
        }
    }
@ -180,12 +180,10 @@ public class DataCollectController extends BaseController {
   */
    @RequestMapping("validJob")
    @ResponseBody
    public Result validJob(String jobId,String valid) {
    public Result validJob(String jobId, String valid) {
        try {
            return datacollect.validJob(jobId, valid);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
@ -198,57 +196,51 @@ public class DataCollectController extends BaseController {
    public Result deleteJob(String jobId) {
        try {
            return datacollect.deleteJob(jobId);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /**
     * 获取任务信息
     *
     * @return
     */
    @RequestMapping("getJobInfo")
    @ResponseBody
    public Result getJobInfo(String jobId)
    {
    public Result getJobInfo(String jobId) {
        try {
            RsJobConfig job = datacollect.getJobById(jobId);
            if(job!=null)
            {
                ActionResult re = new ActionResult(true,"");
            if (job != null) {
                ActionResult re = new ActionResult(true, "");
                re.setData(job.getValid());
                return re;
            } else {
                return new ActionResult(false, "非法操作!");
            }
            else{
                return new ActionResult(false,"非法操作!");
            }
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /**
     * 根据任务Id获取相关数据集下拉数据
     *
     * @return
     */
    @RequestMapping("getJobDatasetByJobId")
    @ResponseBody
    public Result getJobDatasetByJobId(String jobId)
    {
    public Result getJobDatasetByJobId(String jobId) {
        try {
            return datacollect.getJobDatasetByJobId(jobId);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /************************* 数据集--数据源管理 ******************************************/
    /*************************
     * 数据集--数据源管理
     ******************************************/
    /*
    数据集配置
     */
@ -263,9 +255,7 @@ public class DataCollectController extends BaseController {
            model.addAttribute("contentPage", "/datacollect/configDataset");
            return "partView";
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            model.addAttribute("contentPage", "error");
            return "partView";
        }
@ -273,6 +263,7 @@ public class DataCollectController extends BaseController {
    /**
     * 数据集数据源管理列表(包含全部数据集)
     *
     * @return
     */
    @RequestMapping("getDatasetSource")
@ -280,26 +271,23 @@ public class DataCollectController extends BaseController {
    public Result getDatasetSource(String stdVersion) {
        try {
            return datacollect.getDatasetSource(stdVersion);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /**
     * 更新数据集数据源
     *
     * @return
     */
    @RequestMapping("saveDatasetSource")
    @ResponseBody
    public Result saveDatasetSource(String stdVersion,String json){
    public Result saveDatasetSource(String stdVersion, String json) {
        try {
            return datacollect.saveDatasetSource(json);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
@ -308,19 +296,18 @@ public class DataCollectController extends BaseController {
    /*************************** 任务执行 ************************************************/
    /**
     * 执行任务
     *
     * @return
     */
    @RequestMapping("executeJob")
    @ResponseBody
    public Result executeJob(String jobId){
    public Result executeJob(String jobId) {
        try {
            datacollectService.executeJob(jobId);
            return Result.success("处理完成!");
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
    }
        }
    }
@ -328,36 +315,30 @@ public class DataCollectController extends BaseController {
    任务补采界面
     */
    @RequestMapping("repeatDatacollect")
    public String repeatDatacollect(Model model,String jobId,String jobDatasetId,String jobStatus,String jobTimeFrom,String jobTimeTo) {
    public String repeatDatacollect(Model model, String jobId, String jobDatasetId, String jobStatus, String jobTimeFrom, String jobTimeTo) {
        try {
            model.addAttribute("jobId", jobId==null?"":jobId);
            model.addAttribute("jobDatasetId", jobDatasetId==null?"":jobDatasetId);
            model.addAttribute("jobStatus", jobStatus==null?"":jobStatus);
            if(jobTimeFrom!=null&&jobTimeFrom.length()>0)
            {
            model.addAttribute("jobId", jobId == null ? "" : jobId);
            model.addAttribute("jobDatasetId", jobDatasetId == null ? "" : jobDatasetId);
            model.addAttribute("jobStatus", jobStatus == null ? "" : jobStatus);
            if (jobTimeFrom != null && jobTimeFrom.length() > 0) {
                Date timeFrom = DateConvert.toDate(jobTimeFrom);
                model.addAttribute("jobTimeFrom", DateConvert.toString(timeFrom));
            }
            else{
                GregorianCalendar gc=new GregorianCalendar();
            } else {
                GregorianCalendar gc = new GregorianCalendar();
                gc.setTime(new Date());
                gc.add(5, -7);
                model.addAttribute("jobTimeFrom", DateConvert.toString(gc.getTime()));
            }
            if(jobTimeTo!=null&&jobTimeTo.length()>0)
            {
            if (jobTimeTo != null && jobTimeTo.length() > 0) {
                Date timeTo = DateConvert.toDate(jobTimeTo);
                model.addAttribute("jobTimeTo", DateConvert.toString(timeTo));
            }
            else{
            } else {
                model.addAttribute("jobTimeTo", DateConvert.toString(new Date()));
            }
            model.addAttribute("contentPage", "/datacollect/repeatDatacollect");
            return "partView";
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            model.addAttribute("contentPage", "error");
            return "partView";
        }
@ -365,64 +346,55 @@ public class DataCollectController extends BaseController {
    /**
     * 任务详细日志列表
     *
     * @return
     */
    @RequestMapping("getJobLogDetail")
    @ResponseBody
    public Result getJobLogDetail(String jobId,String jobDatasetId,String jobStatus,String jobTimeFrom,String jobTimeTo,int page, int rows){
    public Result getJobLogDetail(String jobId, String jobDatasetId, String jobStatus, String jobTimeFrom, String jobTimeTo, int page, int rows) {
        try {
            Map<String, Object> conditionMap = new HashMap<String, Object>();
            conditionMap.put("jobId",jobId);
            conditionMap.put("jobDatasetId",jobDatasetId);
            conditionMap.put("jobStatus",jobStatus);
            conditionMap.put("jobTimeFrom",jobTimeFrom);
            conditionMap.put("jobId", jobId);
            conditionMap.put("jobDatasetId", jobDatasetId);
            conditionMap.put("jobStatus", jobStatus);
            conditionMap.put("jobTimeFrom", jobTimeFrom);
            conditionMap.put("jobTimeTo", jobTimeTo);
            return datacollect.getJobLogDetail(conditionMap,page,rows);
        }
        catch (Exception ex)
        {
            return datacollect.getJobLogDetail(conditionMap, page, rows);
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /**
     * 补采数据
     *
     * @return
     */
    @RequestMapping("repeat")
    @ResponseBody
    public Result repeat(String ids){
    public Result repeat(String ids) {
        try {
            if(ids.length()>0)
            {
            if (ids.length() > 0) {
                String[] logId = ids.split(",");
                if(logId.length==1)
                {
                if (logId.length == 1) {
                    return datacollectService.repeatJob(ids);
                }
                else {
                } else {
                    StringBuilder str = new StringBuilder();
                    for(String id:logId)
                    {
                    for (String id : logId) {
                        ActionResult re = datacollectService.repeatJob(id);
                        if(re.isSuccessFlg())
                        {
                            str.append(id+"补采成功!\n");
                        }
                        else{
                            str.append(id+"补采失败!\n");
                        if (re.isSuccessFlg()) {
                            str.append(id + "补采成功!\n");
                        } else {
                            str.append(id + "补采失败!\n");
                        }
                    }
                    return Result.success(str.toString());
                }
            }
            else{
            } else {
                return Result.error("非法操作!");
            }
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
@ -430,16 +402,15 @@ public class DataCollectController extends BaseController {
    /*************************** 任务跟踪 ***********************************/
    /**
     * 任务跟踪界面
     *
     * @return
     */
    @RequestMapping("trackJob")
    public String trackJob(Model model,String jobId) {
        try{
    public String trackJob(Model model, String jobId) {
        try {
            model.addAttribute("contentPage", "/datacollect/trackJob");
            return "pageView";
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            model.addAttribute("contentPage", "error");
            return "partView";
        }
@ -447,34 +418,32 @@ public class DataCollectController extends BaseController {
    /**
     * 任务日志列表
     *
     * @return
     */
    @RequestMapping("getJobLog")
    @ResponseBody
    public Result getJobLog(String jobId,int page, int rows){
    public Result getJobLog(String jobId, int page, int rows) {
        try {
            Map<String, Object> conditionMap = new HashMap<String, Object>();
            conditionMap.put("jobId",jobId);
            return datacollect.getJobLog(conditionMap,page,rows);
        }
        catch (Exception ex)
        {
            conditionMap.put("jobId", jobId);
            return datacollect.getJobLog(conditionMap, page, rows);
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /**
     * 任务详细根据数据集分组
     *
     * @return
     */
    @RequestMapping("getJobLogDataset")
    @ResponseBody
    public Result getJobLogDataset(String logId){
    public Result getJobLogDataset(String logId) {
        try {
            return datacollect.getJobLogDataset(logId);
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
@ -484,22 +453,121 @@ public class DataCollectController extends BaseController {
     */
    @RequestMapping("jobLayout")
    public String jobLayout(Model model) {
        model.addAttribute("contentPage","/datacollect/jobLayout");
        model.addAttribute("contentPage", "/datacollect/jobLayout");
        return "partView";
    }
    @RequestMapping("getJobLayout")
    @ResponseBody
    public List<SchemeResultDetailModel> getJobLayout() {
        try {
            List<SchemeResultDetailModel> schemeResultDetailModels = adapterSchemeService.getSchemeList2();
            ObjectMapper mapper = new ObjectMapper();
            String result = mapper.writeValueAsString(schemeResultDetailModels);
            return schemeResultDetailModels;
//            DictionaryResult dictionaryResult = new DictionaryResult();
//            List<DictItem> detailModelList = new ArrayList<DictItem>();
//            for(SchemeResultDetailModel schemeResultDetailModel : schemeResultDetailModels){
//                DictItem items = new DictItem();
//                String id = schemeResultDetailModel.getId();
//                items.setCode(id);
//                items.setValue(schemeResultDetailModel.getName());
//                detailModelList.add(items);
//            }
//            dictionaryResult.setDetailModelList(detailModelList);
//            return dictionaryResult;
        } catch (Exception ex) {
//            return Result.error(ex.getMessage());
            return null;
        }
    }
    /**
     * 保存或更新 任务编排信息
     * @param list 适配方案 数据集关系
     * @return
     */
    @RequestMapping("updateSchemeList")
    @ResponseBody
    public Result saveOrUpdateSchemes( String list) {
        try {
            return adapterSchemeService.saveOrUpdateSchemeList(list);
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /**
     * 获取适配方案 数据集关系
     * @param schemeId 适配方案ID
     * @return
     */
    @RequestMapping("getSchemeDataSets")
    @ResponseBody
    public List getSchemeDataSets(
            @RequestParam(value = "schemeId", required = true) Integer schemeId,
            @RequestParam(value = "version", required = true) String version
            ) {
        try {
            return adapterSchemeService.getAdapterDataSets(schemeId,version);
        } catch (Exception ex) {
            return new ArrayList<>();
        }
    }
    /**
     * 保存适配方案数据集关系 (暂定)
     * @param schemeId
     * @param version
     * @param dataSetList
     * @return
     */
    @RequestMapping("addSchemeRelation")
    @ResponseBody
    public List addSchemeRelation(
            @RequestParam(value = "schemeId", required = true) Integer schemeId,
            @RequestParam(value = "version", required = true) String version,
            @RequestParam(value = "dataSetList", required = true) String dataSetList
    ) {
        try {
            return adapterSchemeService.getAdapterDataSets(schemeId,version);
        } catch (Exception ex) {
            return new ArrayList<>();
        }
    }
    /**
     * 保存适配方案 数据映射关系
     * @param schemeId
     * @param version
     * @param data
     * @return
     */
    @RequestMapping("saveCrawlerFlow")
    @ResponseBody
    public Result saveCrawlerFlowRelation(
            @RequestParam(value = "schemeId", required = true) Integer schemeId,
            @RequestParam(value = "version", required = true) String version,
            @RequestParam(value = "data", required = true) String data
    ) {
        try {
            return adapterSchemeService.saveDataSetRelation(schemeId, version, data);
        } catch (Exception ex) {
            return Result.error(ex.getMessage());
        }
    }
    /*
   任务编排数据映射
    */
    @RequestMapping("jobDataMapping")
    public String jobDataMapping(Model model,String jobId) {
    public String jobDataMapping(Model model, String jobId) {
        try {
            model.addAttribute("contentPage", "/datacollect/dataMapping");
            return "pageView";
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            model.addAttribute("contentPage", "/datacollect/dataMapping");
            return "pageView";
        }

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

@ -1,6 +1,9 @@
package com.yihu.ehr.standard.model.adapter.resultModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import java.io.Serializable;
import java.util.List;
public class SchemeResultDetailModel implements Serializable {
    String id;
@ -17,6 +20,7 @@ public class SchemeResultDetailModel implements Serializable {
    String version;
    Integer type;
    String date;
    List<AdapterSchemeVersionModel> versionList;
    public String getId() {
        return id;
@ -129,4 +133,12 @@ public class SchemeResultDetailModel implements Serializable {
    public void setAdapterStdVersion(String adapterStdVersion) {
        this.adapterStdVersion = adapterStdVersion;
    }
    public List<AdapterSchemeVersionModel> getVersionList() {
        return versionList;
    }
    public void setVersionList(List<AdapterSchemeVersionModel> versionList) {
        this.versionList = versionList;
    }
}

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

@ -2,17 +2,25 @@ 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.CrawlerDataSetModel;
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.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.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 +285,123 @@ 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, "保存成功!");
    }
}

+ 1 - 1
Hos-resource/src/main/resources/config/http.properties

@ -9,5 +9,5 @@ sslPassword = 123456
clientId = 1FtXTrSL8D
clientKey = MUZ0WFRyU0w4RDp1c3ZOeWxWc0ZvdFVlQ2tE
httpGateway=http://localhost:8890/gateway/transfer
httpGateway=http://192.168.131.6:8081/gateway/transfer

+ 1 - 1
Hos-resource/src/main/resources/config/sys.config.xml

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <!--<temp_file>D:\temp</temp_file>-->
    <temp_file>D:\temp</temp_file>
    <event_no>
        <item>HDSD03_01_031</item>
        <item>HDSD00_01_579</item>

+ 18 - 0
Hos-resource/src/main/resources/hbm/resource/CrawlerDataSet.hbm.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel" table="crawler_dataset">
        <composite-id>
            <key-property name="schemeVersionId" column="scheme_version_id"/>
            <key-property name="datasetCode" column="dataset_id"/>
            <key-property name="schemeId" column="scheme_id"/>
        </composite-id>
        <property name="datasetCode">
            <column name="dataset_code"/>
        </property>
        <property name="datasetName">
            <column name="dataset_name"/>
        </property>
    </class>
</hibernate-mapping>