浏览代码

任务编排接口添加

demon 9 年之前
父节点
当前提交
dd5ca8176f

+ 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;
    }
}

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

@ -0,0 +1,19 @@
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;
    }
}

+ 108 - 0
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;
@ -11,6 +12,8 @@ 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.service.adapter.AdapterSchemeService;
import com.yihu.ehr.system.service.intf.IDatasourceManager;
import net.sf.json.JSONArray;
import org.apache.commons.beanutils.BeanUtils;
@ -19,6 +22,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,6 +49,9 @@ public class DataCollectController extends BaseController {
    @Resource(name = Services.Datasource)
    IDatasourceManager datasource;
    @Resource(name = AdapterSchemeService.BEAN_ID)
    private AdapterSchemeService adapterSchemeService;
    /**************************** 任务管理 ************************************************/
    /*
@ -505,4 +512,105 @@ public class DataCollectController extends BaseController {
        }
    }
    @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());
        }
    }
}

+ 13 - 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;
@ -18,6 +21,16 @@ public class SchemeResultDetailModel implements Serializable {
    Integer type;
    String date;
    List<AdapterSchemeVersionModel> versionList;
    public List<AdapterSchemeVersionModel> getVersionList() {
        return versionList;
    }
    public void setVersionList(List<AdapterSchemeVersionModel> versionList) {
        this.versionList = versionList;
    }
    public String getId() {
        return id;
    }

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

@ -2,17 +2,23 @@ package com.yihu.ehr.standard.service.adapter;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.crawler.model.flow.CrawlerFlowHeadModel;
import com.yihu.ehr.crawler.model.flow.CrawlerFlowModel;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.model.ActionResult;
import com.yihu.ehr.framework.model.DetailModelResult;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeResultDetailModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.hibernate.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -277,4 +283,120 @@ public class AdapterSchemeService extends SQLGeneralDAO {
        }
        return false;
    }
    public List<SchemeResultDetailModel> getSchemeList2() {
        String schemeHql = "FROM AdapterSchemeModel";
        Query query = getCurrentSession().createQuery(schemeHql);
        List<AdapterSchemeModel> adapterSchemeModelList = query.list();
        List<SchemeResultDetailModel> schemeList = new ArrayList<>();
        for (AdapterSchemeModel schemeModel : adapterSchemeModelList) {
            String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId";
            query = getCurrentSession().createQuery(adapterVersionHql);
            query.setParameter("schemeId", schemeModel.getId());
            List<AdapterSchemeVersionModel> versionModelList = query.list();
            String id = "" + schemeModel.getId();
            SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel();
            resultDetailModel.setId(id);
            resultDetailModel.setPid("");
            resultDetailModel.setType(0);
            resultDetailModel.setName(schemeModel.getName());
            resultDetailModel.setVersionList(versionModelList);
            schemeList.add(resultDetailModel);
        }
        return schemeList;
    }
    /**
     * 新增或修改
     * @param json
     * @return
     * @throws Exception
     */
    public ActionResult saveOrUpdateSchemeList(String json) throws Exception {
        JSONArray jsonList = JSONArray.fromObject(json);
        for (Object item : jsonList) {
            JSONObject obj = JSONObject.fromObject(item);
            if (obj.containsKey("id") && obj.getString("id").length() > 0) {
                String id = obj.getString("id");
                //修改
                AdapterSchemeVersionModel schemeVersion = (AdapterSchemeVersionModel) JSONObject.toBean(obj, AdapterSchemeVersionModel.class);
                updateEntity(schemeVersion);
            } else {
                //新增
                AdapterSchemeVersionModel schemeVersion = (AdapterSchemeVersionModel) JSONObject.toBean(obj, AdapterSchemeVersionModel.class);
                saveEntity(schemeVersion);
            }
        }
        return new ActionResult(true, "保存成功!");
    }
    /**
     * 根据适配版本 获取数据集列表
     * @param schemeId
     * @param version
     * @return
     */
    public List<AdapterDatasetModel> getAdapterDataSets(Integer schemeId,String version){
        List<AdapterDatasetModel> list=new ArrayList<>();
        String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId and version = :version";
        Query query = getCurrentSession().createQuery(adapterVersionHql);
        query.setParameter("schemeId", schemeId);
        query.setParameter("version", version);
        AdapterSchemeVersionModel versionModel =(AdapterSchemeVersionModel) query.uniqueResult();
        String tableName="adapter_dataset_"+versionModel.getVersion();
        String adapterDataSetSql = "select * FROM "+tableName+" WHERE scheme_id = :schemeId";
        Query dataSetQuery = getCurrentSession().createSQLQuery(adapterDataSetSql).addEntity(AdapterDatasetModel.class);
        dataSetQuery.setParameter("schemeId", schemeId);
        List<AdapterDatasetModel> adapterDataSet=dataSetQuery.list();
        return adapterDataSet;
    }
    /**
     * 保存编排映射关系
     * @param schemeId 适配方案ID
     * @param version 适配方案版本
     * @param json  映射数据
     * @return
     * @throws Exception
     */
    public ActionResult saveDataSetRelation(Integer schemeId,String version,String json) throws Exception {
        JSONObject root = JSONObject.fromObject(json);
        JSONArray jsonList = root.getJSONArray("lines");
        JSONArray entrances = root.getJSONArray("entrances");
        String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId = :schemeId and version = :version";
        Query query = getCurrentSession().createQuery(adapterVersionHql);
        query.setParameter("schemeId", schemeId);
        query.setParameter("version", version);
        AdapterSchemeVersionModel versionModel =(AdapterSchemeVersionModel) query.uniqueResult();
        for (Object item : jsonList) {
            JSONObject obj = JSONObject.fromObject(item);
            String from = obj.getString("from");
            String to = obj.getString("to");
            String fromPort = obj.getString("fromPort");
            String toPort = obj.getString("toPort");
            //TODO 保存编排关系
            CrawlerFlowModel crawlerFlow=new CrawlerFlowModel();
            crawlerFlow.setDatasetCode(to);
            crawlerFlow.setInputDatasetCode(from);
            crawlerFlow.setMetadataCode(toPort);
            crawlerFlow.setInputMetadataCode(fromPort);
            crawlerFlow.setSchemeVersionId(versionModel.getId());
            saveEntity(crawlerFlow);
        }
        for (Object item : entrances) {
            JSONObject obj = JSONObject.fromObject(item);
            String dataSet = obj.getString("dataSet");
            String meta = obj.getString("meta");
            //TODO  保存入口数据集
            CrawlerFlowHeadModel headModel=new CrawlerFlowHeadModel();
            headModel.setSchemeVersionId(versionModel.getId());
            headModel.setDatasetCode(dataSet);
            headModel.setMetadataCode(meta);
            saveEntity(headModel);
        }
        return new ActionResult(true, "保存成功!");
    }
}

+ 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>