浏览代码

全流程路由编排

lingfeng 8 年之前
父节点
当前提交
aa64203465
共有 55 个文件被更改,包括 926 次插入2066 次删除
  1. 1 2
      hos-broker/src/main/java/com/yihu/hos/common/appender/JMSAppender.java
  2. 2 3
      hos-broker/src/main/java/com/yihu/hos/controllers/GatewayController.java
  3. 2 1
      hos-broker/src/main/java/com/yihu/hos/services/GatewayService.java
  4. 3 4
      hos-broker/src/main/resources/application.yml
  5. 17 0
      hos-camel/pom.xml
  6. 19 0
      hos-camel/src/main/java/com/yihu/hos/camel/qlc/processor/Processor0.java
  7. 24 0
      hos-camel/src/main/java/com/yihu/hos/camel/qlc/processor/Processor1.java
  8. 26 0
      hos-camel/src/main/java/com/yihu/hos/camel/qlc/processor/Processor2.java
  9. 23 0
      hos-camel/src/main/java/com/yihu/hos/camel/qlc/route/QlcRouteBulider.java
  10. 6 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/configuration/BeanConfiguration.java
  11. 2 35
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DatacollectDao.java
  12. 1 42
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DatacollectLogDao.java
  13. 14 0
      hos-rest/src/main/java/com/yihu/hos/rest/common/filter/HibernateFilter.java
  14. 344 0
      hos-rest/src/main/java/com/yihu/hos/rest/common/http/EHRHttpHelper.java
  15. 2 1
      hos-rest/src/main/java/com/yihu/hos/rest/controllers/CrawlerController.java
  16. 1 4
      hos-rest/src/main/java/com/yihu/hos/rest/controllers/DataPushController.java
  17. 226 145
      hos-rest/src/main/java/com/yihu/hos/rest/controllers/QLCController.java
  18. 35 0
      hos-rest/src/main/java/com/yihu/hos/rest/models/qlc/QLCPushReturnModel.java
  19. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoDatasetCol.java
  20. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoDictCol.java
  21. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoJobConfig.java
  22. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoJobDataset.java
  23. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoJobLog.java
  24. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsDatapushLog.java
  25. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobConfig.java
  26. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobDataset.java
  27. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobLog.java
  28. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobLogDetail.java
  29. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/models/standard/SystemParam.java
  30. 0 83
      hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdCDACatalogModel.java
  31. 0 50
      hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdCDADatasetModel.java
  32. 0 94
      hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdCDAModel.java
  33. 0 85
      hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdDatasetCatalogModel.java
  34. 0 27
      hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/resultModel/PublisherResultModel.java
  35. 15 6
      hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CrawlerManager.java
  36. 1 1
      hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CrawlerService.java
  37. 43 11
      hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/DataCollectDispatcher.java
  38. 1 0
      hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/DatacollectManager.java
  39. 25 91
      hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/EsbHttp.java
  40. 0 149
      hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/OldPatientCDAUpload.java
  41. 0 85
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/adapter/AdapterDatasetRelationService.java
  42. 0 1
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/adapter/AdapterDatasetService.java
  43. 0 59
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/adapter/AdapterSchemeDispatchService.java
  44. 1 8
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StandardService.java
  45. 0 399
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StandardVersionService.java
  46. 0 134
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdCDACatalogService.java
  47. 0 203
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdCDADatasetService.java
  48. 0 178
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdCDAService.java
  49. 0 148
      hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdDatasetCatalogService.java
  50. 2 2
      hos-rest/src/main/resources/application.yml
  51. 2 2
      hos-rest/src/main/resources/config/dbhelper.properties
  52. 11 0
      hos-rest/src/main/resources/config/http.properties
  53. 31 0
      hos-rest/src/main/resources/config/sys.config.xml
  54. 34 0
      hos-rest/src/main/resources/hibernate/RsDatapushLog.hbm.xml
  55. 1 1
      hos-rest/src/main/resources/hibernate/SystemParam.hbm.xml

+ 1 - 2
hos-broker/src/main/java/com/yihu/hos/common/appender/JMSAppender.java

@ -17,7 +17,6 @@
package com.yihu.hos.common.appender;
import com.yihu.hos.core.constants.CoreConstant;
import com.yihu.hos.core.datatype.DateUtil;
import com.yihu.hos.core.datatype.StringUtil;
import net.sf.json.JSONObject;
@ -327,7 +326,7 @@ public class JMSAppender extends AppenderSkeleton {
      map.put("breadcrumbId",StringUtil.toString(event.getMDC("camel.breadcrumbId")));
      map.put("camelContextId", StringUtil.toString(event.getMDC("camel.contextId")));
      map.put("body", body);
      map.put("fireTime", DateUtil.getSysDateTime().toString());
      map.put("fireTimeSource", DateUtil.toStringFormatGMTTime(DateUtil.toGMTTime(event.getTimeStamp()), DateUtil.DEFAULT_YMDHMSDATE_FORMAT));
      msg.setObject(JSONObject.fromObject(map).toString());
      topicPublisher.publish(msg);

+ 2 - 3
hos-broker/src/main/java/com/yihu/hos/controllers/GatewayController.java

@ -7,7 +7,6 @@ import com.yihu.hos.models.GatewayResponseResult;
import com.yihu.hos.services.GatewayService;
import net.sf.json.JSONObject;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@ -19,13 +18,13 @@ import javax.servlet.http.HttpServletResponse;
import java.io.Writer;
@Controller
@RequestMapping("/gateway")
@RequestMapping("/esb")
public class GatewayController {
    @Resource(name = GatewayService.BEAN_ID)
    private GatewayService gatewayService;
    @ResponseBody
    @RequestMapping(value = "/transfer", method = RequestMethod.POST)
    @RequestMapping(value = "/gateway", method = RequestMethod.POST)
    public void transfer(HttpServletRequest request, HttpServletResponse response) throws Exception {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("application/json;charset=UTF-8");

+ 2 - 1
hos-broker/src/main/java/com/yihu/hos/services/GatewayService.java

@ -27,7 +27,8 @@ public class GatewayService {
        //拼凑出URL
        String url =  HttpClientUtil.getUrl(gatewayConfiguration.getIp(), gatewayConfiguration.getPort(), gatewayRequsetResult.getApi());
        try {
            returnData = HttpClientUtil.doPost(url, JSONObject.fromObject(gatewayRequsetResult.getParam()), null, null);
            System.out.print(JSONObject.fromObject(gatewayRequsetResult.getParam()));
            returnData = HttpClientUtil.doGet(url, JSONObject.fromObject(gatewayRequsetResult.getParam()), null, null);
        } catch (Exception e) {
            throw new ESBException(ExceptionConstant.EHREXCEPTION_SYSTEM_TRANSFER, ExceptionConstant.EHREXCEPTION_SYSTEM_TRANSFER_MESSAGE);
        }

+ 3 - 4
hos-broker/src/main/resources/application.yml

@ -7,7 +7,9 @@ local:
    port: 8099
  application:
    name: HosBrokerServer
security:
  basic:
    enabled: false
# the name of Camel
camel:
  springboot:
@ -48,9 +50,6 @@ spring:
  gateway:
    ip: localhost
    port: 8066
security:
  basic:
    enabled: false
hos:
  arbiter:
    enable: false

+ 17 - 0
hos-camel/pom.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>hos-camel-class</groupId>
    <artifactId>hos-camel-class</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-web-framework-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <relativePath>../hos-web-framework-dependencies</relativePath> <!-- lookup parent from repository -->
    </parent>
</project>

+ 19 - 0
hos-camel/src/main/java/com/yihu/hos/camel/qlc/processor/Processor0.java

@ -0,0 +1,19 @@
package com.yihu.hos.camel.qlc.processor;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.http.common.HttpMessage;
/**
 * Created by Zdm on 2016/7/13.
 */
public class Processor0 implements Processor {
    public void process(Exchange exchange) throws Exception {
        Message outMessage = exchange.getOut();
        HttpMessage inMessage = (HttpMessage) exchange.getIn();
        String queryString = "api=qlc&param="+inMessage.getRequest().getParameterValues("data")[0];
        outMessage.setHeader(Exchange.HTTP_QUERY, queryString);
    }
}

+ 24 - 0
hos-camel/src/main/java/com/yihu/hos/camel/qlc/processor/Processor1.java

@ -0,0 +1,24 @@
package com.yihu.hos.camel.qlc.processor;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.http.common.HttpMessage;
import java.util.Map;
/**
 * Created by Zdm on 2016/7/13.
 */
public class Processor1 implements Processor {
    public void process(Exchange exchange) throws Exception {
        Message outMessage = exchange.getOut();
        HttpMessage inMessage = (HttpMessage) exchange.getIn();
        outMessage.setHeader(Exchange.HTTP_QUERY, inMessage.getRequest().getQueryString());
        Map paramMap = inMessage.getRequest().getParameterMap();
        for (Object key : paramMap.keySet()) {
            exchange.setProperty(key.toString(), paramMap.get(key));
        }
    }
}

+ 26 - 0
hos-camel/src/main/java/com/yihu/hos/camel/qlc/processor/Processor2.java

@ -0,0 +1,26 @@
package com.yihu.hos.camel.qlc.processor;
import net.sf.json.JSONObject;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.Processor;
import java.util.Map;
/**
 * Created by Zdm on 2016/7/13.
 */
public class Processor2 implements Processor {
    public void process(Exchange exchange) throws Exception {
        Message outMessage = exchange.getOut();
        Message inMessage = exchange.getIn();
        String body = inMessage.getBody(String.class);
        Map<String, Object> mapJson = JSONObject.fromObject(body);
        String queryString = "";
        for (String key : mapJson.keySet()) {
            queryString += key + "=" + mapJson.get(key) + "&";
        }
        outMessage.setHeader(Exchange.HTTP_QUERY, queryString);
    }
}

+ 23 - 0
hos-camel/src/main/java/com/yihu/hos/camel/qlc/route/QlcRouteBulider.java

@ -0,0 +1,23 @@
package com.yihu.hos.camel.qlc.route;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import com.yihu.hos.camel.qlc.processor.Processor1;
import com.yihu.hos.camel.qlc.processor.Processor2;
/**
 * Created by lingfeng on 2016/7/25.
 */
public class QlcRouteBulider extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("jetty:http://192.168.131.96:8066/qlc").routeId("qlc")
                .process(new Processor1()).setHeader(Exchange.HTTP_METHOD, constant("POST"))
                .to("http://192.168.131.96:8088/api/v1.0/qlc/queryUserInfo")
                .process(new Processor2()).setHeader(Exchange.HTTP_METHOD, constant("POST"))
                .to("http://192.168.131.96:8088/api/v1.0/qlc/patientInformation")
                .process(new Processor2()).setHeader(Exchange.HTTP_METHOD, constant("POST"))
                .to("http://192.168.131.96:8088/crawler/patient").to("stream:out"); // 2. 为路由配置组件或终端节点.
    }
}

+ 6 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/configuration/BeanConfiguration.java

@ -1,5 +1,7 @@
package com.yihu.hos.rest.common.configuration;
import com.yihu.hos.rest.common.filter.HibernateFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@ -11,5 +13,8 @@ import org.springframework.context.annotation.ImportResource;
@Configuration
@ImportResource({"classpath:spring/applicationContext.xml"})
public class BeanConfiguration {
    @Bean
    public HibernateFilter filterConfig() {
        return new HibernateFilter();
    }
}

+ 2 - 35
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DatacollectDao.java

@ -1,6 +1,8 @@
package com.yihu.hos.rest.common.dao;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.models.rs.DtoJobDataset;
import com.yihu.hos.rest.models.rs.RsJobDataset;
import com.yihu.hos.web.framework.constrant.DateConvert;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.model.DataGridResult;
@ -116,41 +118,6 @@ public class DatacollectDao extends SQLGeneralDAO {
        }
    }
    /**
     * 删除数据集数据源关联
     */
    public void deleteDatasourceDatasetById(String id) throws Exception
    {
        String sql = "delete from rs_datasource_dataset where id='"+id+"'";
        super.execute(sql);
    }
    /**
     * 通过任务ID获取相关数据集
     */
    public List<DtoJobDataset> getDatacollectDataset(String jobId) throws Exception
    {
        //通过jobId获取机构版本号
        String sqlVersion ="select a.adapter_std_version\n" +
                "from rs_job_config c,(SELECT s.adapter_std_version,v.version from adapter_scheme s,adapter_scheme_version v where s.id=v.scheme_id) a\n" +
                "where a.version = c.scheme_version\n" +
                "and c.id='"+jobId+"'";
        String version = super.scalarBySql(sqlVersion,String.class);
        String sql = "select d.*,\n" +
                "t.datasource_id,t.datasource_name,t.config,t.type,t.org_code\n" +
                "from rs_job_dataset d\n" +
                "LEFT JOIN (select s.dataset_id,s.datasource_id,ss.name as datasource_name,ss.config,ss.type,ss.org_code \n" +
                "\tfrom rs_datasource_dataset s,(select ds.id,ds.name,ds.config,ds.type,o.code as org_code from system_datasource ds,system_organization o where ds.org_id=o.id) ss where s.datasource_id=ss.id and s.Std_version='"+version+"') t \n" +
                "on d.job_dataset_id = t.dataset_id \n" +
                "where d.job_id='"+jobId+"'\n" +
                "order by d.sort";
        return super.queryListBySql(sql,DtoJobDataset.class);
    }
    /**
     * 获取任务详细日志列表
     */

+ 1 - 42
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DatacollectLogDao.java

@ -2,6 +2,7 @@ package com.yihu.hos.rest.common.dao;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.models.rs.RsDatapushLog;
import com.yihu.hos.web.framework.constrant.DateConvert;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.model.DataGridResult;
@ -18,16 +19,6 @@ import java.util.Map;
public class DatacollectLogDao extends SQLGeneralDAO {
    /**
     * 修改轮询字段
     */
    public void updateJobDatasetKeyvalue(String id,String jobDatasetKeyvalue) throws Exception
    {
        String sql = "update rs_job_dataset set job_dataset_keyvalue='"+jobDatasetKeyvalue+"' where id='"+id+"'";
        super.execute(sql);
    }
    /******************************** 推模式日志 ***************************************/
    /**
     * 推数据新增日志
@ -41,36 +32,4 @@ public class DatacollectLogDao extends SQLGeneralDAO {
        log.setDatetime(new Date());
        this.saveEntity(log);
    }
    /**
     * 获取日志列表
     */
    public DataGridResult queryDataPushLog(Map<String, Object> conditionMap, Integer page, Integer pageSize) throws Exception
    {
        StringBuilder sb = new StringBuilder();
        sb.append("from RsDatapushLog where 1=1 ");
        if (!StringUtil.isEmpty(conditionMap.get("type"))) {
            sb.append(" and type ='"+conditionMap.get("type")+"'");
        }
        if (!StringUtil.isEmpty(conditionMap.get("datetimeFrom"))) {
            Date time = DateConvert.toDate(conditionMap.get("datetimeFrom").toString());
            time.setHours(0);
            time.setMinutes(0);
            time.setSeconds(0);
            sb.append(" and datetime >= '"+ DateConvert.toString(time)+"'");
        }
        if (!StringUtil.isEmpty(conditionMap.get("datetimeTo"))) {
            Date time = DateConvert.toDate(conditionMap.get("datetimeTo").toString());
            time.setHours(0);
            time.setMinutes(0);
            time.setSeconds(0);
            GregorianCalendar gc=new GregorianCalendar();
            gc.setTime(time);
            gc.add(5, 1);
            sb.append(" and datetime < '"+DateConvert.toString(gc.getTime())+"'");
        }
        sb.append("order by datetime desc");
        return getDataGridResult(sb.toString(),page,pageSize);
    }
}

+ 14 - 0
hos-rest/src/main/java/com/yihu/hos/rest/common/filter/HibernateFilter.java

@ -0,0 +1,14 @@
package com.yihu.hos.rest.common.filter;
import org.springframework.orm.hibernate5.support.OpenSessionInViewFilter;
import javax.servlet.annotation.WebFilter;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2016/8/12.
 */
@WebFilter(filterName="SpringOpenSessionInViewFilter",urlPatterns="/*")
public class HibernateFilter extends OpenSessionInViewFilter {
}

+ 344 - 0
hos-rest/src/main/java/com/yihu/hos/rest/common/http/EHRHttpHelper.java

@ -0,0 +1,344 @@
package com.yihu.hos.rest.common.http;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.httpclient.HttpClientUtil;
import com.yihu.hos.core.httpclient.HttpResponse;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.GzipDecompressingEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.util.EntityUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import javax.net.ssl.SSLContext;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.zip.GZIPInputStream;
public class EHRHttpHelper {
    public static String defaultHttpUrl;
    public static String clientId;
    public static String clientKey;
    private static String defaultPropertiesPath = "config/http.properties";
    private static SSLConnectionSocketFactory defaultSSL;
    private static String defaultHttpUser;
    private static String defaultHttpPassword;
    static {
        //默认配置
        try {
            Resource resource = new ClassPathResource(defaultPropertiesPath);
            EncodedResource encRes = new EncodedResource(resource, "UTF-8");
            Properties props = PropertiesLoaderUtils.loadProperties(encRes);
            defaultHttpUrl = props.getProperty("httpUrl");
            defaultHttpUser = props.getProperty("httpUser");
            defaultHttpPassword = props.getProperty("httpPassword");
            clientId = props.getProperty("clientId");
            clientKey = props.getProperty("clientKey");
            String sslKeystore = props.getProperty("sslKeystore");
            String sslPassword = props.getProperty("sslPassword");
            if (StringUtil.isEmpty(sslKeystore)) {
                String home = System.getProperty("catalina.home").replace('\\', '/');
                String homeUrl = home.substring(0, home.lastIndexOf('/') + 1);
                // sslKeystore = homeUrl + "tomcat.keystore";
                sslKeystore = "E://tomcat.keystore";
            }
            if (sslKeystore != null && sslKeystore.length() > 0 && sslPassword != null && sslPassword.length() > 0) {
                SSLContext sslContext = SSLContexts.custom()
                        .loadTrustMaterial(new File(sslKeystore), sslPassword.toCharArray(),
                                new TrustSelfSignedStrategy())
                        .build();
                defaultSSL = new SSLConnectionSocketFactory(
                        sslContext,
                        new String[]{"TLSv1"},
                        null,
                        SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
            }
        } catch (Exception e) {
            System.out.print(e.getMessage());
        }
    }
    /**************************
     * Get方法
     ******************************************/
    public static HttpResponse get(String url) {
        return get(url, null, null);
    }
    public static HttpResponse get(String url, Map<String, Object> params) {
        return get(url, params, null);
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return get(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return get(url, params, header, null, null, null);
        }
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return get(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return get(url, params, header, null, null, null);
        }
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return get(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("GET", url, params, header, ssl, user, password);
    }
    /**************************
     * Post方法
     ******************************************/
    public static HttpResponse post(String url) {
        return post(url, null, null);
    }
    public static HttpResponse post(String url, Map<String, Object> params) {
        return post(url, params, null);
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return post(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return post(url, params, header, null, null, null);
        }
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return post(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return post(url, params, header, null, null, null);
        }
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return post(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("POST", url, params, header, ssl, user, password);
    }
    public static HttpResponse postFile(String url, List<NameValuePair> formParams, String filePath, Map<String, Object> header) {
        File file = new File(filePath);
        if (url.startsWith("https")) {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
        }
    }
    public static HttpResponse postFile(String url, List<NameValuePair> formParams, File file, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
        }
    }
    /**************************
     * Put方法
     ******************************************/
    public static HttpResponse put(String url) {
        return put(url, null, null);
    }
    public static HttpResponse put(String url, Map<String, Object> params) {
        return put(url, params, null);
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return put(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return put(url, params, header, null, null, null);
        }
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return put(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return put(url, params, header, null, null, null);
        }
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return put(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("PUT", url, params, header, ssl, user, password);
    }
    /**************************
     * Delete方法
     **************************************/
    public static HttpResponse delete(String url) {
        return delete(url, null, null);
    }
    public static HttpResponse delete(String url, Map<String, Object> params) {
        return delete(url, params, null);
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return delete(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return delete(url, params, header, null, null, null);
        }
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return delete(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return delete(url, params, header, null, null, null);
        }
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return delete(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("DELETE", url, params, header, ssl, user, password);
    }
    public static String getWebPage(String url) {
        String returnString = "";
        HttpResponse re = new HttpResponse();
        CloseableHttpResponse response = null;
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(defaultSSL)
                .build();
        //设置请求信息
        try {
            HttpGet httpGet = new HttpGet(url);
            response = httpclient.execute(httpGet);
            String line;
            // 读取输入流的数据,并显示
            HttpEntity httpEntity = response.getEntity();
            Header header = response.getEntity().getContentEncoding();
            if (httpEntity.getContentLength() < 2147483647L) {            //EntityUtils无法处理ContentLength超过2147483647L的Entity
                if (header != null && "gzip".equals(header.getValue())) {
                    returnString = EntityUtils.toString(new GzipDecompressingEntity(httpEntity));
                } else {
                    returnString = EntityUtils.toString(httpEntity);
                }
            } else {
                InputStream in = httpEntity.getContent();
                if (header != null && "gzip".equals(header.getValue())) {
                    returnString = unZip(in, ContentType.getOrDefault(httpEntity).getCharset().toString());
                } else {
                    returnString = readInStreamToString(in, ContentType.getOrDefault(httpEntity).getCharset().toString());
                }
                if (in != null) {
                    in.close();
                }
            }
        } catch (Exception e) {
            re.setStatusCode(201);
            re.setBody(e.getMessage());
            e.printStackTrace();
        } finally {
            try {
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println(returnString);
        return returnString;
    }
    /**
     * 解压服务器返回的gzip流
     *
     * @param in      抓取返回的InputStream流
     * @param charSet 页面内容编码
     * @return 页面内容的String格式
     * @throws IOException
     */
    private static String unZip(InputStream in, String charSet) throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        GZIPInputStream gis = null;
        try {
            gis = new GZIPInputStream(in);
            byte[] _byte = new byte[1024];
            int len = 0;
            while ((len = gis.read(_byte)) != -1) {
                baos.write(_byte, 0, len);
            }
            String unzipString = new String(baos.toByteArray(), charSet);
            return unzipString;
        } finally {
            if (gis != null) {
                gis.close();
            }
            if (baos != null) {
                baos.close();
            }
        }
    }
    /**
     * 读取InputStream流
     *
     * @param in InputStream流
     * @return 从流中读取的String
     * @throws IOException
     */
    private static String readInStreamToString(InputStream in, String charSet) throws IOException {
        StringBuilder str = new StringBuilder();
        String line;
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in, charSet));
        while ((line = bufferedReader.readLine()) != null) {
            str.append(line);
            str.append("\n");
        }
        if (bufferedReader != null) {
            bufferedReader.close();
        }
        return str.toString();
    }
}

+ 2 - 1
hos-rest/src/main/java/com/yihu/hos/rest/controllers/CrawlerController.java

@ -34,6 +34,8 @@ public class CrawlerController {
    @Resource
    CrawlerService crawlerService;
    @Resource
    CrawlerManager crawlerManager;
    @Resource(name = AdapterSchemeService.BEAN_ID)
    private AdapterSchemeService adapterSchemeService;
@ -80,7 +82,6 @@ public class CrawlerController {
            @ApiParam(name = "patient", value = "病人索引信息", required = true)
            @RequestParam(value = "patient") String patientInfo) {
        CrawlerManager crawlerManager = new CrawlerManager();
        Patient patient = crawlerManager.parsePatient(patientInfo);
        if (patient != null) {
            Boolean result = crawlerManager.collectProcess(patient);

+ 1 - 4
hos-rest/src/main/java/com/yihu/hos/rest/controllers/DataPushController.java

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 * 数据采集配置页面
 * Created by hzp on 2015/8/12.
 */
@RequestMapping("/datapush")
@RequestMapping("/crawler")
@Controller("dataPushController")
public class DataPushController extends BaseController {
@ -35,7 +35,4 @@ public class DataPushController extends BaseController {
            return Result.error(ex.getMessage());
        }
    }
}

文件差异内容过多而无法显示
+ 226 - 145
hos-rest/src/main/java/com/yihu/hos/rest/controllers/QLCController.java


+ 35 - 0
hos-rest/src/main/java/com/yihu/hos/rest/models/qlc/QLCPushReturnModel.java

@ -0,0 +1,35 @@
package com.yihu.hos.rest.models.qlc;
/**
 * Created by Administrator on 2016/6/28.
 */
public class QLCPushReturnModel {
    private String status = "0";
    private String statusInfo = "请求成功";
    private String data;
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getStatusInfo() {
        return statusInfo;
    }
    public void setStatusInfo(String statusInfo) {
        this.statusInfo = statusInfo;
    }
    public String getData() {
        return data;
    }
    public void setData(String data) {
        this.data = data;
    }
}

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoDatasetCol.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
/**

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoDictCol.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
import org.json.JSONArray;

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoJobConfig.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
/**
 * RsJobConfig entity. @author MyEclipse Persistence Tools

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoJobDataset.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
/**
 * RsJobDataset entity. @author MyEclipse Persistence Tools

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/DtoJobLog.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
/**
 * add by hzp at 20160204

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsDatapushLog.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
import java.util.Date;

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobConfig.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
import java.util.Date;

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobDataset.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
/**
 * RsJobDataset entity. @author MyEclipse Persistence Tools

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobLog.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
import java.util.Date;

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/common/dao/RsJobLogDetail.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.common.dao;
package com.yihu.hos.rest.models.rs;
import java.util.Date;

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/models/standard/SystemParam.java

@ -1,4 +1,4 @@
package com.yihu.hos.rest.models.standard;
package com.yihu.hos.rest.models.standard.bo;
/**
 * SystemParam entity. @author MyEclipse Persistence Tools

+ 0 - 83
hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdCDACatalogModel.java

@ -1,83 +0,0 @@
package com.yihu.hos.rest.models.standard.standard;
import com.yihu.hos.web.framework.model.Result;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;
/**
 * CDA类型模型
 *
 * @created Airhead 2015/12/23.
 */
public class StdCDACatalogModel extends Result implements Serializable {
    @Id
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "code")
    private String code;
    @Column(name = "name")
    private String name;
    @Column(name = "parent_id")
    private Integer parentID;
    @Column(name = "sort")
    private String sort;
    @Column(name = "description")
    private String description;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getParentID() {
        return parentID;
    }
    public void setParentID(Integer parentID) {
        this.parentID = parentID;
    }
    public String getSort() {
        return sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 0 - 50
hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdCDADatasetModel.java

@ -1,50 +0,0 @@
package com.yihu.hos.rest.models.standard.standard;
import com.yihu.hos.web.framework.model.Result;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;
/**
 * CDA与数据集关系模型
 *
 * @created Airhead 2015/12/23.
 */
public class StdCDADatasetModel extends Result implements Serializable {
    @Id
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "cda_id")
    private Integer cdaID;
    @Column(name = "dataset_id")
    private Integer datasetId;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getCdaID() {
        return cdaID;
    }
    public void setCdaID(Integer cdaID) {
        this.cdaID = cdaID;
    }
    public Integer getdatasetId() {
        return datasetId;
    }
    public void setdatasetId(Integer datasetId) {
        this.datasetId = datasetId;
    }
}

+ 0 - 94
hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdCDAModel.java

@ -1,94 +0,0 @@
package com.yihu.hos.rest.models.standard.standard;
import com.yihu.hos.web.framework.model.Result;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;
/**
 * @created Airhead 2015/12/23.
 */
public class StdCDAModel extends Result implements Serializable {
    @Id
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "std_id")
    private Integer standardId;
    @Column(name = "code")
    private String code;
    @Column(name = "name")
    private String name;
    @Column(name = "path")
    private String path;
    @Column(name = "description")
    private String description;
    @Column(name = "catalog_id")
    private Integer catalogID;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getstandardId() {
        return standardId;
    }
    public void setstandardId(Integer standardId) {
        this.standardId = standardId;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getCatalogID() {
        return catalogID;
    }
    public void setCatalogID(Integer catalogID) {
        this.catalogID = catalogID;
    }
}

+ 0 - 85
hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/StdDatasetCatalogModel.java

@ -1,85 +0,0 @@
package com.yihu.hos.rest.models.standard.standard;
import com.yihu.hos.web.framework.model.Result;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;
/**
 * 数据集模型
 *
 * @created Airhead 2015/12/23.
 */
public class StdDatasetCatalogModel extends Result implements Serializable {
    public static String TABLE_NAME = "STD_DATASET_CATALOG";
    @Id
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "name")
    private String name;
    @Column(name = "code")
    private String code;
    @Column(name = "parent_id")
    private Integer parentID;
    @Column(name = "sort")
    private String sort;
    @Column(name = "description")
    private String description;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public Integer getParentID() {
        return parentID;
    }
    public void setParentID(Integer parentID) {
        this.parentID = parentID;
    }
    public String getSort() {
        return sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 0 - 27
hos-rest/src/main/java/com/yihu/hos/rest/models/standard/standard/resultModel/PublisherResultModel.java

@ -1,27 +0,0 @@
package com.yihu.hos.rest.models.standard.standard.resultModel;
import com.yihu.hos.web.framework.model.Result;
/**
 * Created by lingfeng on 2016/4/22.
 */
public class PublisherResultModel extends Result {
    String name;
    String code;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
}

+ 15 - 6
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CrawlerManager.java

@ -2,6 +2,10 @@ package com.yihu.hos.rest.services.crawler;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.dbhelper.common.DBList;
import com.yihu.ehr.dbhelper.common.MongodbQuery;
import com.yihu.ehr.dbhelper.common.QueryCondition;
import com.yihu.ehr.dbhelper.common.QueryEntity;
import com.yihu.hos.core.datatype.CollectionUtil;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.log.Logger;
@ -16,17 +20,24 @@ import com.yihu.hos.rest.models.standard.bo.AdapterVersion;
import com.yihu.hos.rest.services.standard.adapter.AdapterDatasetService;
import com.yihu.hos.rest.services.standard.adapter.AdapterSchemeVersionService;
import com.yihu.hos.web.framework.model.DictItem;
import com.yihu.hos.web.framework.util.springutil.SpringBeanUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("CrawlerManager")
public class CrawlerManager {
    public static final String BEAN_ID = "CrawlerManager";
    private static Logger logger = LoggerFactory.getLogger(CrawlerManager.class);
    @Autowired
    private AdapterDatasetService adapterDatasetService;
    @Autowired
    AdapterSchemeVersionService adapterSchemeVersionService;
    private static DataCollectDispatcher dispatch = DataCollectDispatcher.getInstance();
    private static SysConfig sysConfig=SysConfig.getInstance();
    private static Map<String, Map<String, AdapterDataSet>> adapterDataSetVersionMap = new HashMap<>();
@ -152,7 +163,6 @@ public class CrawlerManager {
        try {
            adapterDataSetMap = new HashMap<>();
            AdapterVersion adapterVersion;
            AdapterDatasetService adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID);
            List<AdapterDatasetModel> adapterDataSetModelList = new ArrayList<>();
            if (!CollectionUtil.isEmpty(datasetList)) {
                /**
@ -168,7 +178,6 @@ public class CrawlerManager {
                /**
                 * 推模式接口调用,默认只使用最新版本的适配
                 */
                AdapterSchemeVersionService adapterSchemeVersionService = SpringBeanUtil.getService(AdapterSchemeVersionService.BEAN_ID);
                AdapterSchemeVersionModel adapterSchemeVersionModel = adapterSchemeVersionService.getEhrAdapterVersionLasted();
                if (adapterSchemeVersionModel == null) {
                    logger.error("获取最新ehr适配版本错误");

+ 1 - 1
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/CrawlerService.java

@ -8,7 +8,7 @@ import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.common.dao.CrawlerDatasetDao;
import com.yihu.hos.rest.common.dao.CrawlerFlowDao;
import com.yihu.hos.rest.common.dao.CrawlerFlowHeadDao;
import com.yihu.hos.rest.common.dao.DtoJobDataset;
import com.yihu.hos.rest.models.rs.DtoJobDataset;
import com.yihu.hos.rest.models.crawler.flow.CrawlerDataSetModel;
import com.yihu.hos.rest.models.crawler.flow.CrawlerFlowHeadModel;
import com.yihu.hos.rest.models.crawler.flow.CrawlerFlowModel;

+ 43 - 11
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/DataCollectDispatcher.java

@ -4,6 +4,10 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.ehr.dbhelper.common.DBList;
import com.yihu.ehr.dbhelper.common.MongodbQuery;
import com.yihu.ehr.dbhelper.common.QueryCondition;
import com.yihu.ehr.dbhelper.common.QueryEntity;
import com.yihu.hos.core.datatype.DateUtil;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.file.FileUtil;
@ -19,8 +23,11 @@ import com.yihu.hos.rest.models.crawler.transform.EhrCondition;
import com.yihu.hos.rest.models.crawler.transform.LogicValues;
import com.yihu.hos.rest.models.standard.adapter.AdapterMetadataModel;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.text.SimpleDateFormat;
@ -103,7 +110,8 @@ public class DataCollectDispatcher {
                queryParams.add(new EhrCondition(" < ", patientIdentity.getRefTimeCode(), endTime));
                //Rest 接口请求
                String rootStr = EsbHttp.getPatientList(adapterDataSetMap.get(key), queryParams);
                ObjectMapper objectMapper = new ObjectMapper();
                String rootStr = collectionData(adapterDataSetMap.get(key).getAdapterDataSetT().getStdDatasetCode(), objectMapper.writeValueAsString(queryParams));
                if (StringUtil.isEmpty(rootStr)) {
                    return null;
                }
@ -170,16 +178,8 @@ public class DataCollectDispatcher {
    public String fecthData(Patient patient, AdapterDataSet adapterDataSet, List<EhrCondition> queryParams) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            ObjectNode paramsNode = mapper.createObjectNode();
            paramsNode.put("tableCode", adapterDataSet.getAdapterDataSetT().getStdDatasetCode());
            paramsNode.put("condition", mapper.writeValueAsString(queryParams));
            List<NameValuePair> formParams = new ArrayList<>();
//            formParams.add(new BasicNameValuePair("secret", secret));
            formParams.add(new BasicNameValuePair("api", "collectionData"));
            formParams.add(new BasicNameValuePair("param", mapper.writeValueAsString(paramsNode)));
            //调用资源服务网关
            String rootStr = EsbHttp.getFecthData(formParams);
            String rootStr = collectionData(adapterDataSet.getAdapterDataSetT().getStdDatasetCode(), mapper.writeValueAsString(queryParams));
            JsonNode resultNode = mapper.readValue(rootStr, JsonNode.class);
            JsonNode result = resultNode.path("detailModelList");
@ -257,7 +257,7 @@ public class DataCollectDispatcher {
            formParams.add(new BasicNameValuePair("api", "collectionData"));
            formParams.add(new BasicNameValuePair("param", mapper.writeValueAsString(paramsNode)));
            //调用资源服务网关
            String rootStr = EsbHttp.getFecthData(formParams);
            String rootStr = collectionData(adapterDataSet.getAdapterDataSetT().getStdDatasetCode(), mapper.writeValueAsString(queryParams));
            JsonNode resultNode = mapper.readValue(rootStr, JsonNode.class);
            JsonNode result = resultNode.path("detailModelList");
@ -378,4 +378,36 @@ public class DataCollectDispatcher {
        }
        return tokenMap;
    }
    public String collectionData(String tableCode, String condition) throws Exception {
        try {
            MongodbQuery mdb = new MongodbQuery();
            QueryEntity qe = new QueryEntity(tableCode);
            //[{andOr:"and",field:"code",condition:"=",value:"111"}]
            //设置参数
            if (!StringUtils.isEmpty(condition) && !"{}".equals(condition)) {
                JSONArray ar = JSONArray.fromObject(condition);
                for (int i = 0; i < ar.size(); i++) {
                    JSONObject jo = (JSONObject) ar.get(i);
                    String andOr = String.valueOf(jo.get("andOr"));
                    String field = String.valueOf(jo.get("field"));
                    String cond = String.valueOf(jo.get("condition"));
                    String value = String.valueOf(jo.get("value"));
                    qe.addCondition(new QueryCondition(andOr, cond, field, value));
                }
            }
            DBList list = mdb.query(qe);
            MongodbQuery mdbSecond = new MongodbQuery("origin");
            DBList listSecond = mdbSecond.query(qe);
            JSONObject jo=new JSONObject();
            jo.put("detailModelList", list.getList().toString());
            jo.put("originList",listSecond.getList().toString());
            return jo.toString();
        } catch (Exception e) {
            return "";
        }
    }
}//end DataCollectDispatcher

+ 1 - 0
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/DatacollectManager.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.yihu.hos.rest.common.dao.*;
import com.yihu.hos.rest.models.rs.*;
import com.yihu.hos.rest.models.standard.adapter.AdapterDatasetModel;
import com.yihu.hos.rest.services.standard.StdService;
import com.yihu.hos.web.framework.model.ActionResult;

+ 25 - 91
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/EsbHttp.java

@ -6,10 +6,10 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.encrypt.MD5;
import com.yihu.hos.core.httpclient.HttpClientUtil;
import com.yihu.hos.core.httpclient.HttpHelper;
import com.yihu.hos.core.httpclient.HttpResponse;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.rest.common.http.EHRHttpHelper;
import com.yihu.hos.rest.models.crawler.adapter.AdapterDataSet;
import com.yihu.hos.rest.models.crawler.config.SysConfig;
import com.yihu.hos.rest.models.crawler.patient.Patient;
@ -36,11 +36,11 @@ public class EsbHttp {
     * 用户登录验证
     */
    public static HttpResponse loginAction(String user, String password) throws Exception{
        String loginAction = HttpHelper.defaultHttpUrl+"/authorizations/users/" + user;
        String loginAction = EHRHttpHelper.defaultHttpUrl+"/authorizations/users/" + user;
        Map<String,Object> header = new HashMap<>();
        String auth  = new BASE64Encoder().encode((user+":"+password).getBytes());
        header.put("Authorization","Basic "+auth);
        return HttpHelper.put(loginAction, null, header);
        return EHRHttpHelper.put(loginAction, null, header);
    }
    /*
@ -48,11 +48,11 @@ public class EsbHttp {
    * */
    public static HttpResponse getUserInfo(String user,String token)
    {
        String url = HttpHelper.defaultHttpUrl+"/users/" + user;
        String url = EHRHttpHelper.defaultHttpUrl+"/users/" + user;
        Map<String,Object> params = new HashMap<>();
        params.put("token",token);
        params.put("user",user);
        return HttpHelper.get(url, params);
        return EHRHttpHelper.get(url, params);
    }
    /***************************** 应用接口 *********************************************/
@ -77,14 +77,14 @@ public class EsbHttp {
     */
    public static String getToken(){
        try {
            String loginAction = HttpHelper.defaultHttpUrl + "/authorizations/clients/" + HttpHelper.clientId;
            String loginAction = EHRHttpHelper.defaultHttpUrl + "/authorizations/clients/" + EHRHttpHelper.clientId;
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            //本地指纹
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("info", "{\"fingerprint\": \"" + GetFingerprint() + "\"}");
            HttpResponse response = HttpHelper.put(loginAction, params, header);
            HttpResponse response = EHRHttpHelper.put(loginAction, params, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject obj = new JSONObject(response.getBody());
                //判断是否成功
@ -111,72 +111,6 @@ public class EsbHttp {
        }
    }
    /**
     * 获取病人列表
     */
    public static String getPatientList(AdapterDataSet adapterDataSet, List<EhrCondition> queryParams){
        try {
            ObjectMapper mapper = new ObjectMapper();
            ObjectNode paramsNode = mapper.createObjectNode();
            paramsNode.put("tableCode", adapterDataSet.getAdapterDataSetT().getStdDatasetCode());
            paramsNode.put("condition", mapper.writeValueAsString(queryParams));
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("api", "collectionData"));
            String params = mapper.writeValueAsString(paramsNode);
            formParams.add(new BasicNameValuePair("param", params));
            HttpResponse response = HttpClientUtil.postForm(HttpHelper.httpGateway, formParams);
            if (response == null || response.getStatusCode() != 200) {
                logger.error("获取病人列表错误,请求HTTP错误,请检查配置或HTTP是否可用.");
                return "";
            }
            JsonNode responseNode = mapper.readValue(response.getBody(), JsonNode.class);
            String code = responseNode.path("responseCode").asText();
            if (StringUtil.isEmpty(code) || !code.equals("10000")) {
                logger.error("获取病人列表错误,请求HTTP错误,请检查集成平台网关是否可用.");
                return "";
            }
            String rootStr = responseNode.path("responseResult").asText();
            if ("".equals(rootStr)) {
                logger.error("获取病人列表错误,集成平台获取病人列表失败.");
                return "";
            }
            return rootStr;
        } catch (Exception e) {
            logger.error("获取病人列表失败!", e);
            return "";
        }
    }
    public static String getFecthData(List<NameValuePair> formParams) {
        try {
            HttpResponse response = HttpClientUtil.postForm(HttpHelper.httpGateway, formParams);
            if (response == null || response.getStatusCode() != 200) {
                logger.info("获取病人数据错误,请求HTTP错误,请检查配置或HTTP是否可用.");
                return SqlConstants.EMPTY;
            }
            ObjectMapper mapper = new ObjectMapper();
            JsonNode responseNode = mapper.readValue(response.getBody(), JsonNode.class);
            String code = responseNode.path("responseCode").asText();
            if (StringUtil.isEmpty(code) || !code.equals("10000")) {
                logger.info("获取病人数据错误,请求HTTP错误,请检查集成平台网关是否可用.");
                return SqlConstants.EMPTY;
            }
            String rootStr = responseNode.path("responseResult").asText();
            if (SqlConstants.EMPTY.equals(rootStr)) {
                logger.info("获取病人数据错误,集成平台获取病人数据失败.");
                return SqlConstants.EMPTY;
            }
            return rootStr;
        } catch (Exception e) {
            logger.error("获取病人数据失败.", e);
            return SqlConstants.EMPTY;
        }
    }
        /**
         * 获取公钥
         */
@ -187,12 +121,12 @@ public class EsbHttp {
                return SysConfig.getInstance().getPublicKeyMap().get(orgCode);
            }
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.put("org_code", orgCode);
            paramMap.put("token", token);
            String publicKeyMethod = HttpHelper.defaultHttpUrl + "/organizations/"+orgCode+"/key";
            HttpResponse response = HttpHelper.get(publicKeyMethod, paramMap, header);
            String publicKeyMethod = EHRHttpHelper.defaultHttpUrl + "/organizations/"+orgCode+"/key";
            HttpResponse response = EHRHttpHelper.get(publicKeyMethod, paramMap, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject json = new JSONObject(response.getBody());
                if(json.has("publicKey"))
@ -228,13 +162,13 @@ public class EsbHttp {
    public static String getRemoteVersion(String orgCode) {
        try {
            String token = getToken();
            String versionMethod = HttpHelper.defaultHttpUrl + "/adaptions/org_plan/version";
            String versionMethod = EHRHttpHelper.defaultHttpUrl + "/adaptions/org_plan/version";
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            Map<String, Object> params = new HashMap<>();
            params.put("org_code", orgCode);
            params.put("token", token);
            HttpResponse response = HttpHelper.get(versionMethod, params, header);
            HttpResponse response = EHRHttpHelper.get(versionMethod, params, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                return response.getBody();
            }
@ -265,8 +199,8 @@ public class EsbHttp {
            JSONObject json = new JSONObject(data);
            String colName = SysConfig.registerIdCardNo;
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            header.put("User-Agent", "client " + HttpHelper.clientId);
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            header.put("User-Agent", "client " + EHRHttpHelper.clientId);
            if(json!=null && json.has("data")) {
                JSONObject p = (JSONObject)json.getJSONArray("data").get(0);
                if(!p.has(colName) || StringUtil.isEmpty(p.get(colName))) {
@ -275,7 +209,7 @@ public class EsbHttp {
                }
                else{
                    String idCord = p.getString(colName);
                    String registerMethod = HttpHelper.defaultHttpUrl + "/patients/"+idCord;
                    String registerMethod = EHRHttpHelper.defaultHttpUrl + "/patients/"+idCord;
                    if (StringUtil.isEmpty(data)) {
                        logger.info("注册病人信息请求失败:无具体病人信息,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                        return false;
@ -284,7 +218,7 @@ public class EsbHttp {
                    paramMap.put("demographic_id", idCord);
                    paramMap.put("json", data);
                    paramMap.put("token", token);
                    HttpResponse response = HttpHelper.post(registerMethod, paramMap, header);
                    HttpResponse response = EHRHttpHelper.post(registerMethod, paramMap, header);
                    if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                        logger.info("注册病人信息成功。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
@ -319,7 +253,7 @@ public class EsbHttp {
     */
    public static boolean upload(Patient patient, File file, String encryptPwd, String token) {
        try {
            String uploadMethod = HttpHelper.defaultHttpUrl + "/packages";
            String uploadMethod = EHRHttpHelper.defaultHttpUrl + "/packages";
            String fileMd5= MD5.getMd5ByFile(file);
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
@ -327,9 +261,9 @@ public class EsbHttp {
            formParams.add(new BasicNameValuePair("org_code", patient.getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            header.put("User-Agent", "client " + HttpHelper.clientId);
            HttpResponse response = HttpHelper.postFile(uploadMethod, formParams, file.getAbsolutePath(), header);
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            header.put("User-Agent", "client " + EHRHttpHelper.clientId);
            HttpResponse response = EHRHttpHelper.postFile(uploadMethod, formParams, file.getAbsolutePath(), header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                logger.info("上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
@ -360,14 +294,14 @@ public class EsbHttp {
    public static HttpResponse download(String remoteVersion, String orgCode) {
        try {
            String token = getToken();
            String downLoadMethod = HttpHelper.defaultHttpUrl + "/adaptions/"+orgCode+"/source";
            String downLoadMethod = EHRHttpHelper.defaultHttpUrl + "/adaptions/"+orgCode+"/source";
            Map<String, Object> params = new HashMap<>();
            params.put("version_code", remoteVersion);
            params.put("org_code", orgCode);
            params.put("token", token);
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            HttpResponse response = HttpHelper.get(downLoadMethod, params, header);
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            HttpResponse response = EHRHttpHelper.get(downLoadMethod, params, header);
            return response;
        } catch (Exception e) {
            logger.info("下载标准包异常:");

+ 0 - 149
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/OldPatientCDAUpload.java

@ -1,149 +0,0 @@
package com.yihu.hos.rest.services.crawler;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.compress.Zipper;
import com.yihu.hos.core.encrypt.MD5;
import com.yihu.hos.core.encrypt.RSA;
import com.yihu.hos.core.file.FileUtil;
import com.yihu.hos.core.httpclient.HttpHelper;
import com.yihu.hos.core.httpclient.HttpResponse;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.rest.models.crawler.config.SysConfig;
import com.yihu.hos.rest.models.crawler.patient.Patient;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.io.File;
import java.security.Key;
import java.util.*;
/**
 * 档案上传
 *
 * @author Air
 * @version 1.0
 * @created 2015.07.06 15:58
 */
public class OldPatientCDAUpload {
    private static Logger logger = LoggerFactory.getLogger(OldPatientCDAUpload.class);
    public static String uploadMethod;
    /**
     * @param patient
     * @return
     * @modify 2015.09.15 airhead 修订删除目录
     * @modify 2015.09.19 airhead 修复无文档问题及错误信息
     */
    public boolean upload(Patient patient,String token) {
        ZipFile zipFile = zip(patient);
        try {
            if (zipFile == null || zipFile.file == null) {
                logger.info("压缩病人档案失败,病人文档未生成,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
            boolean result = upload(patient, zipFile,token);
            if (!result) {
                logger.info("上传病人档案失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                FileUtil.deleteDirectory(new File(zipFile.directory));
                return false;
            }
            result = FileUtil.deleteDirectory(new File(zipFile.directory));
            if (!result) {
                logger.info("删除临时文件失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            }
        } catch (Exception e) {
            FileUtil.deleteDirectory(new File(zipFile.directory));
        }
        return true;
    }
    /**
     * @param patient
     * @return
     * @modify 从data目录生成zip数据
     */
    public ZipFile zip(Patient patient) {
        try {
            PatientCDAIndex patientCDAIndex = new PatientCDAIndex(patient);
            String dataDirectory = patientCDAIndex.getDataDirectory();
            String filePath = patientCDAIndex.createIndex(PatientCDAIndex.IndexType.ZIP, PatientCDAIndex.FileType.ZIP);
            UUID uuidPwd = UUID.randomUUID();
            String pwd = uuidPwd.toString();
            Key key = RSA.genPublicKey(SysConfig.getInstance().getPublicKeyMap().get(patient.getOrgCode()));
            if (key == null) {
                logger.info("压缩文件错误,无公钥信息.");
                FileUtil.deleteDirectory(new File( patientCDAIndex.getDirectory()));
                return null;
            }
            ZipFile zipFile = new ZipFile();
            zipFile.encryptPwd = RSA.encrypt(pwd, key);
            Zipper zipper = new Zipper();
            zipFile.file = zipper.zipFile(new File(dataDirectory), filePath, pwd);
            zipFile.dataDirectory = dataDirectory;
            zipFile.directory = patientCDAIndex.getDirectory();
            return zipFile;
        } catch (Exception e) {
            e.printStackTrace();
            logger.info("从data目录生成zip数据时,压缩文件异常", e);
        }
        return null;
    }
    private boolean upload(Patient patient,  ZipFile zipFile, String token) {
        try {
            String uploadMethod = HttpHelper.defaultHttpUrl + "/packages";
            String fileMd5= MD5.getMd5ByFile(zipFile.file);
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
            formParams.add(new BasicNameValuePair("package_crypto", zipFile.encryptPwd));
            formParams.add(new BasicNameValuePair("org_code", patient.getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            HttpResponse response = HttpHelper.postFile(uploadMethod, formParams, zipFile.file.getAbsolutePath(), header);
            if (response == null) {
                logger.info( "上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
            if (response.getStatusCode() != 200) {
                logger.info( "上传病人档案请求失败,错误代码:" + response.getStatusCode() + ",patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
            ObjectMapper mapper = new ObjectMapper();
            JsonNode rootNode = mapper.readValue(response.getBody(), JsonNode.class);
            JsonNode codeNode = rootNode.get("code");
            String result = codeNode.asText();
            if (!result.equals("0")) {
                logger.info("上传病人档案失败,错误代码:" + result + ",patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            } else {
                logger.info( "上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.info( "上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            return false;
        }
    }
    private class ZipFile {
        public File file;
        public String encryptPwd;
        public String directory;
        public String dataDirectory;
    }
}

+ 0 - 85
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/adapter/AdapterDatasetRelationService.java

@ -1,85 +0,0 @@
package com.yihu.hos.rest.services.standard.adapter;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.rest.models.standard.adapter.AdapterDatasetRelationModel;
import com.yihu.hos.rest.models.standard.bo.AdapterVersion;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import com.yihu.hos.web.framework.util.sql.SqlCreator;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Transactional
@Service("AdapterDatasetRelationService")
public class AdapterDatasetRelationService extends SQLGeneralDAO {
    public static final String BEAN_ID = "AdapterDatasetRelationService";
    public AdapterDatasetRelationService() {
    }
    public void finalize() throws Throwable {
        super.finalize();
    }
    public AdapterDatasetRelationModel add(String adapterVersion, String datasetRelation) {
        try {
            AdapterVersion version = new AdapterVersion(adapterVersion);
            ObjectMapper objectMapper = new ObjectMapper();
            AdapterDatasetRelationModel adapterDatasetRelationModel = objectMapper.readValue(datasetRelation, AdapterDatasetRelationModel.class);
            Session session = getCurrentSession();
            String sql = "select max(id) from " + version.getMetaDataTableName();
            Query query = session.createSQLQuery(sql);
            Object object = query.uniqueResult();
            adapterDatasetRelationModel.setId(object == null ? 1 : Integer.parseInt(object.toString()) + 1);
            JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(adapterDatasetRelationModel));
            SqlCreator sqlCreator = new SqlCreator(AdapterDatasetRelationModel.class);
            sql = sqlCreator.insertData(version.getMetaDataTableName(), jsonNode);
            query = getExeuteQuery(sqlCreator, sql);
            query.executeUpdate();
            adapterDatasetRelationModel.setSuccessFlg(true);
            adapterDatasetRelationModel.setMessage("保存数据集关联成功");
            return adapterDatasetRelationModel;
        } catch (Exception e) {
            throw new ApiException(ErrorCode.SaveDatasetRelationFailed);
        }
    }
    public void delete(String adapterVersion, Integer datasetRelationId) {
        try {
            if (adapterVersion == null || adapterVersion.length() == 0) {
                throw new ApiException(ErrorCode.InvalidStdVersion);
            }
            AdapterVersion version = new AdapterVersion(adapterVersion);
            Session session = getCurrentSession();
            String sql = "delete from " + version.getMetaDataTableName() + " where id = :id";
            Query query = session.createSQLQuery(sql);
            query.setInteger("id", datasetRelationId);
            query.executeUpdate();
        } catch (Exception e) {
            throw new ApiException(ErrorCode.DeleteDataSetRelationFailed);
        }
    }
    public AdapterDatasetRelationModel modify(String adapterVersion, String datasetRelation) {
        try {
            AdapterVersion version = new AdapterVersion(adapterVersion);
            ObjectMapper objectMapper = new ObjectMapper();
            AdapterDatasetRelationModel adapterDatasetRelationModel = objectMapper.readValue(datasetRelation, AdapterDatasetRelationModel.class);
            JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(adapterDatasetRelationModel));
            SqlCreator sqlCreator = new SqlCreator(AdapterDatasetRelationModel.class);
            String sql = sqlCreator.updateDataByTableKey(version.getMetaDataTableName(), jsonNode);
            Query query = getExeuteQuery(sqlCreator, sql);
            query.executeUpdate();
            return adapterDatasetRelationModel;
        } catch (Exception e) {
            throw new ApiException(ErrorCode.UpdateatasetRelationFailed);
        }
    }
}

+ 0 - 1
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/adapter/AdapterDatasetService.java

@ -27,7 +27,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Transactional
@Service("AdapterDatasetService")
public class AdapterDatasetService extends SQLGeneralDAO {

+ 0 - 59
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/adapter/AdapterSchemeDispatchService.java

@ -1,59 +0,0 @@
package com.yihu.hos.rest.services.standard.adapter;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.rest.models.standard.adapter.AdapterSchemeDispatchModel;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * @created lingfeng 2015/12/25.
 */
@Transactional
@Service("AdapterSchemeDispatchService")
public class AdapterSchemeDispatchService extends SQLGeneralDAO {
    public static final String BEAN_ID = "AdapterSchemeDispatchService";
    public AdapterSchemeDispatchModel add(String dispatcher) {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            AdapterSchemeDispatchModel model = objectMapper.readValue(dispatcher, AdapterSchemeDispatchModel.class);
            saveEntity(model);
            return model;
        } catch (Exception e) {
            throw new ApiException(ErrorCode.SaveSchemeFailed);
        }
    }
    public void delete(Integer dispatchId) {
        try {
            AdapterSchemeDispatchModel model = getEntity(AdapterSchemeDispatchModel.class, dispatchId);
            deleteEntity(model);
        } catch (Exception e) {
            throw new ApiException(ErrorCode.DeleteSchemeFailed);
        }
    }
    public AdapterSchemeDispatchModel update(String dispatcher) {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            AdapterSchemeDispatchModel model = objectMapper.readValue(dispatcher, AdapterSchemeDispatchModel.class);
            updateEntity(model);
            return model;
        } catch (Exception e) {
            throw new ApiException(ErrorCode.UpdateSchemeFailed);
        }
    }
    public AdapterSchemeDispatchModel get(Integer dispatchId) {
        try {
            AdapterSchemeDispatchModel model = getEntity(AdapterSchemeDispatchModel.class, dispatchId);
            return model;
        } catch (Exception e) {
            throw new ApiException(ErrorCode.GetSchemeFailed);
        }
    }
}

+ 1 - 8
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StandardService.java

@ -1,19 +1,13 @@
package com.yihu.hos.rest.services.standard.standard;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.datatype.CollectionUtil;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.models.standard.SystemParam;
import com.yihu.hos.rest.models.standard.bo.SystemParam;
import com.yihu.hos.rest.models.standard.standard.StandardModel;
import com.yihu.hos.rest.models.standard.standard.StandardVersionModel;
import com.yihu.hos.rest.models.standard.standard.resultModel.StandardParamResultModel;
import com.yihu.hos.rest.models.standard.standard.resultModel.StandardResultDetailModel;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import com.yihu.hos.web.framework.model.DetailModelResult;
import com.yihu.hos.web.framework.model.DictItem;
import com.yihu.hos.web.framework.model.DictionaryResult;
import com.yihu.hos.web.framework.model.Result;
@ -26,7 +20,6 @@ import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

+ 0 - 399
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StandardVersionService.java

@ -1,399 +0,0 @@
package com.yihu.hos.rest.services.standard.standard;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.datatype.CollectionUtil;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.models.standard.adapter.AdapterSchemeModel;
import com.yihu.hos.rest.models.standard.bo.StandardVersion;
import com.yihu.hos.rest.models.standard.standard.StandardVersionModel;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import com.yihu.hos.web.framework.model.DictItem;
import com.yihu.hos.web.framework.model.DictionaryResult;
import com.yihu.hos.web.framework.model.Result;
import com.yihu.hos.web.framework.util.sql.RequestParamTransformer;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.*;
/**
 * @created Airhead 2015/12/25.
 */
@Transactional
@Service("StandardVersionService")
public class StandardVersionService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StandardVersionService";
    public DictionaryResult getDictionaryResult(Integer standardId, String condition, String order, Integer rows, Integer page) {
        try {
            DictionaryResult dictionaryResult = DictionaryResult.success("获取标准版本成功");
            List<DictItem> detailModelList = new ArrayList<>();
            List<StandardVersionModel> standardVersionModelList = getVersionList(standardId, condition, order, rows, page);
            for(StandardVersionModel standardVersionModel : standardVersionModelList){
                DictItem items = new DictItem();
                String id = standardVersionModel.getVersion();
                String name = standardVersionModel.getName();
                items.setCode(id.toString());
                items.setValue(name);
                detailModelList.add(items);
            }
            dictionaryResult.setDetailModelList(detailModelList);
            return dictionaryResult;
        } catch (Exception e) {
            return DictionaryResult.error("获取标准版本失败");
        }
    }
    public DictionaryResult getDetailResultModelList(Integer standardId, String condition, String order, Integer rows, Integer page) {
        try {
            List<StandardVersionModel> standardVersionModelList = getVersionList(standardId, condition, order, rows, page);
            DictionaryResult dictionaryResult = new DictionaryResult();
            List<DictItem> detailModelList = new ArrayList<DictItem>();
//            DictItem item = new DictItem();
//            item.setCode("");
//            item.setValue("-无-");
//            detailModelList.add(item);
            for (StandardVersionModel standardVersionModel : standardVersionModelList) {
                DictItem items = new DictItem();
                String  id = standardVersionModel.getVersion();
                String name = standardVersionModel.getName();
                items.setCode(id.toString());
                items.setValue(name);
                detailModelList.add(items);
            }
            dictionaryResult.setDetailModelList(detailModelList);
            dictionaryResult.setSuccessFlg(true);
            dictionaryResult.setMessage("获取标准版本列表成功");
            return dictionaryResult;
        } catch (Exception e) {
            return DictionaryResult.error("获取标准版本列表失败");
        }
    }
    public List<StandardVersionModel> getVersionList(Integer standardId, String condition, String order, Integer limit, Integer offset) {
        try {
            Map queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map orderMap = RequestParamTransformer.parseJsonToMap(order);
            return this.getList(standardId, queryMap, orderMap, limit, offset);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardVersionGetListFailed);
    }
    public Result add(String version) throws Exception {
        Boolean existFlg = false;
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StandardVersionModel versionModel = objectMapper.readValue(version, StandardVersionModel.class);
            existFlg = versionNameValidate(versionModel.getStandardId(), versionModel.getName());
            if (!existFlg) {
                this.add(versionModel);
                versionModel.setSuccessFlg(true);
                versionModel.setMessage("保存标准版本成功");
                return versionModel;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (existFlg) {
            return Result.error("已存在标准版本名称");
        } else {
            return Result.error("保存标准版本失败");
        }
    }
    public Boolean versionNameValidate(Integer standardId, String versionName) {
            Map<String, Object> query = new HashMap<>();
            Map<String, String> order = new HashMap<>();
            query.put("name", versionName);
            List<StandardVersionModel> list = getList(standardId, query, order, 1, 0);
            if (!CollectionUtil.isEmpty(list)) {
                return true;
            }
            return false;
    }
    public Boolean versionNameValidate(Integer standardId, Integer versionId, String versionName) throws Exception {
        String sql = "FROM StandardVersionModel WHERE name = :name and standardId = :standardId and id != :versionId";
        Query query = getCurrentSession().createQuery(sql);
        query.setParameter("standardId", standardId);
        query.setParameter("name", versionName);
        query.setParameter("versionId", versionId);
        List<StandardVersionModel> list = query.list();
        if (!CollectionUtil.isEmpty(list)) {
            return true;
        }
        return false;
    }
    public Result delete(Integer versionId,String version) throws Exception {
        Boolean existFlg = false;
        Boolean useredFlg = false;
        try {
            StandardVersionModel versionModel = (StandardVersionModel) get(versionId);
            if (versionModel.getPublishStatus() == 1) {
                existFlg = true;
            } else {
                String sql = "FROM AdapterSchemeModel WHERE stdVersion = :stdVersion or adapterStdVersion =  :adapterStdVersion";
                Query query = getCurrentSession().createQuery(sql);
                query.setParameter("stdVersion", version);
                query.setParameter("adapterStdVersion", version);
                List<AdapterSchemeModel> list = query.list();
                if (!CollectionUtil.isEmpty(list)) {
                    useredFlg = true;
                }else{
                    this.delete(versionModel);
                    deleteVersionTables(new StandardVersion(versionModel.getVersion()));
                    return Result.success("删除标准版本成功");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (existFlg) {
            return Result.error("该标准版本已发布");
        } else if(useredFlg){
            return Result.error("该标准版本已被适配使用");
        } else {
            return Result.error("删除标准版本失败");
        }
    }
    public Result update(String version) throws Exception {
        Boolean existFlg = false;
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StandardVersionModel versionModel = objectMapper.readValue(version, StandardVersionModel.class);
            existFlg = versionNameValidate(versionModel.getStandardId(), versionModel.getId(), versionModel.getName());
            if (!existFlg) {
                this.update(versionModel);
                versionModel.setSuccessFlg(true);
                versionModel.setMessage("修改标准版本成功");
                return versionModel;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (existFlg) {
            return Result.error("已存在标准版本名称");
        } else {
            return Result.error("修改标准版本失败");
        }
    }
    public Result get(Integer versionId) {
        try {
            StandardVersionModel versionModel = this.myGet(versionId);
            versionModel.setSuccessFlg(true);
            versionModel.setMessage("获取标准版本信息成功");
            return versionModel;
        } catch (DataAccessException e) {
            return Result.error("获取标准版本信息失败");
        }
    }
    public StandardVersionModel fork(Integer versionId) throws Exception {
        try {
            return this.myFork(versionId);
        } catch (DataAccessException | IOException e) {
            throw new ApiException(ErrorCode.StandardVersionForkFailed);
        }
    }
    public Result publish(Integer versionId, String publisher) throws Exception {
        try {
            StandardVersionModel standardVersionModel = this.myPublish(versionId, publisher);
            standardVersionModel.setSuccessFlg(true);
            standardVersionModel.setMessage("发布标准版本成功");
            return standardVersionModel;
        } catch (DataAccessException e) {
            return Result.error("发布标准版本失败");
        }
    }
    public StandardVersionModel getLastestVersion(Integer standardId) {
        Map<String, Object> query = new HashMap<>();
        Map<String, String> order = new HashMap<>();
        order.put("publisher", SqlConstants.DESC);
        List<StandardVersionModel> list = getList(standardId, query, order, 1, 0);
        if (list != null && list.size() != 0) {
            return list.get(0);
        }
        return null;
    }
    public StandardVersionModel myPublish(Integer versionId, String publisher) throws Exception {
        StandardVersionModel standardVersionModel = myGet(versionId);
        //TODO:generate standard version file;
        String path = "";
        standardVersionModel.setPath(path);
        standardVersionModel.setPublishTime(new Date());
        standardVersionModel.setPublishUser(publisher);
        standardVersionModel.setPublishStatus(1);
        this.update(standardVersionModel);
        return standardVersionModel;
    }
    private StandardVersionModel myFork(Integer versionId) throws Exception {
        StandardVersionModel baseVersionModel = myGet(versionId);
        StandardVersionModel newVersionModel = new StandardVersionModel();
        newVersionModel.setBaseVersion(baseVersionModel.getVersion());
        newVersionModel.setName(baseVersionModel.getName() + " Copy");
        newVersionModel.setPrimaryVersion(baseVersionModel.getPrimaryVersion());
        newVersionModel.setPublishTime(new Date());
        this.add(newVersionModel);
        StandardVersion baseVersion = new StandardVersion(baseVersionModel.getVersion());
        StandardVersion newVersion = new StandardVersion(newVersionModel.getVersion());
        buildVersionTables(baseVersion, newVersion, baseVersionModel.getStandardId());
        return newVersionModel;
    }
    private StandardVersionModel myGet(Integer versionId) {
        try {
            return (StandardVersionModel) getEntity(StandardVersionModel.class, versionId);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    private void delete(StandardVersionModel standardVersionModel) throws Exception {
        deleteEntity(standardVersionModel);
    }
    private void update(StandardVersionModel standardVersionModel) throws Exception {
        try {
            updateEntity(standardVersionModel);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private void  add(StandardVersionModel standardVersionModel) throws Exception {
        StandardVersion standardVersion = StandardVersion.generateVersion();
        standardVersionModel.setVersion(standardVersion.getVersion());
        standardVersionModel.setPublishTime(null);
        standardVersionModel.setPublishStatus(0);
        saveEntity(standardVersionModel);
        String baseVer = standardVersionModel.getBaseVersion();
        StandardVersion baseVersion = StringUtil.isEmpty(baseVer) ? null : new StandardVersion(baseVer);
        StandardVersion newVersion = new StandardVersion(standardVersionModel.getVersion());
        buildVersionTables(baseVersion, newVersion, standardVersionModel.getStandardId());
    }
    private List<StandardVersionModel> getList(Integer standardId, Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(StandardVersionModel.class);
        criteria.add(Restrictions.eq("standardId", standardId));
        if (query != null) {
            for (String key : query.keySet()) {
                criteria.add(Restrictions.eq(key, query.get(key)));
            }
        }
        if (limit != null) {
            criteria.setMaxResults(limit);
            if (offset != null) {
                criteria.setFirstResult((offset - 1) * limit);
            }
        }
        if (order != null) {
            for (String key : order.keySet()) {
                if (order.get(key).equals(SqlConstants.ASC)) {
                    criteria.addOrder(Order.asc(key));
                } else if (order.get(key).equals(SqlConstants.DESC)) {
                    criteria.addOrder(Order.desc(key));
                }
            }
        }
        return (List<StandardVersionModel>) criteria.list();
    }
    private void deleteVersionTables(StandardVersion version) {
        String[] tables = {version.getDataSetTableName(),
                version.getMetaDataTableName(),
                version.getDictTableName(),
                version.getDictEntryTableName()
                /*version.getCDATableName(),
               /* version.getCDADatasetTableName()*/};
        List<String> deleteSql = new ArrayList<>();
        for (int i = 0; i < tables.length; ++i) {
            String table = tables[i];
            deleteSql.add(SqlConstants.DROP_TABLE + table);
        }
        insertBatch(deleteSql);
    }
    private void buildVersionTables(StandardVersion baseVersion, StandardVersion newVersion, Integer standardId) {
        String[] newTables = {newVersion.getDataSetTableName(),
                newVersion.getMetaDataTableName(),
                newVersion.getDictTableName(),
                newVersion.getDictEntryTableName()
               /* newVersion.getCDATableName(),
                newVersion.getCDADatasetTableName()*/};
        String[] baseTables;
        if (baseVersion == null) {
            String[] templateTables = {StandardVersion.DataSetTable,
                    StandardVersion.MetaDataTable,
                    StandardVersion.DictTable,
                    StandardVersion.DictEntryTable
                   /* StandardVersion.CDADocumentTable,
                    StandardVersion.CDADatasetTable*/};
            baseTables = templateTables;
        } else {
            String[] templateTables = {baseVersion.getDataSetTableName(),
                    baseVersion.getMetaDataTableName(),
                    baseVersion.getDictTableName(),
                    baseVersion.getDictEntryTableName()
                    /*baseVersion.getCDATableName(),
                    baseVersion.getCDADatasetTableName()*/};
            baseTables = templateTables;
        }
        List<String> createSql = new ArrayList<>();
        List<String> insertSql = new ArrayList<>();
        List<String> updateSql = new ArrayList<>();
        for (int i = 0; i < baseTables.length; ++i) {
            String baseTable = baseTables[i];
            String newTable = newTables[i];
            createSql.add(SqlConstants.CREATE_TABLE + newTable + SqlConstants.LIKE + baseTable);
        }
        for (int i = 0; i < baseTables.length; ++i) {
            String baseTable = baseTables[i];
            String newTable = newTables[i];
            insertSql.add(SqlConstants.INSERT_INTO + newTable + SqlConstants.SELECT + SqlConstants.ASTERISK + SqlConstants.FROM + baseTable);
        }
        for (int i = 0; i < baseTables.length; ++i) {
            String newTable = newTables[i];
            updateSql.add(SqlConstants.UPDATE + newTable + SqlConstants.SET + " STD_ID = " + standardId);
        }
        insertBatch(createSql);
        insertBatch(insertSql);
        insertBatch(updateSql);
    }
}

+ 0 - 134
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdCDACatalogService.java

@ -1,134 +0,0 @@
package com.yihu.hos.rest.services.standard.standard;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.rest.models.standard.standard.StandardModel;
import com.yihu.hos.rest.models.standard.standard.StdCDACatalogModel;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import com.yihu.hos.web.framework.util.sql.RequestParamTransformer;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
 * @author AndyCai
 * @version 1.0
 * @created 11-12月-2015 15:53:02
 */
@Transactional
@Service("StdCDACatalogService")
public class StdCDACatalogService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StdCDACatalogService";
    public StdCDACatalogService() {
    }
    public void finalize() throws Throwable {
    }
    public List<StdCDACatalogModel> getList(String condition, String order, Integer limit, Integer offset) {
        try {
            Map queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map orderMap = RequestParamTransformer.parseJsonToMap(order);
            return this.getList(queryMap, orderMap, limit, offset);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDACatalogGetListFailed);
    }
    public Object add(String catalog) {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StdCDACatalogModel standardModel = objectMapper.readValue(catalog, StdCDACatalogModel.class);
            this.add(standardModel);
            return standardModel.getId();
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDACatalogSaveFailed);
    }
    public void delete(Integer catalogId) throws Exception {
        try {
            if (catalogId != null) {
                StdCDACatalogModel stdCdaCatalogModel = get(catalogId);
                deleteEntity(stdCdaCatalogModel);
            }
        } catch (Exception e) {
            throw new ApiException(ErrorCode.StandardCDACatalogDeleteFailed);
        }
    }
    public Object update(String catalog) {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StdCDACatalogModel standardModel = objectMapper.readValue(catalog, StdCDACatalogModel.class);
            this.update(standardModel);
            return standardModel;
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDACatalogUpdateFailed);
    }
    public StdCDACatalogModel get(Integer catalogId) {
        try {
            return getEntity(StdCDACatalogModel.class, catalogId);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDACatalogGetFailed);
    }
    private void update(StdCDACatalogModel stdCDACatalogModel) throws Exception {
        updateEntity(stdCDACatalogModel);
    }
    private void add(StdCDACatalogModel stdCDACatalogModel) throws Exception {
        saveEntity(stdCDACatalogModel);
    }
    private List<StdCDACatalogModel> getList(Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(StandardModel.class);
        for (String key : query.keySet()) {
            criteria.add(Restrictions.eq(key, query.get(key)));
        }
        if (limit != null) {
            criteria.setMaxResults(limit);
            if (offset != null) {
                criteria.setFirstResult((offset - 1) * limit);
            }
        }
        if (order != null) {
            for (String key : order.keySet()) {
                if (order.get(key).equals(SqlConstants.ASC)) {
                    criteria.addOrder(Order.asc(key));
                } else if (order.get(key).equals(SqlConstants.DESC)) {
                    criteria.addOrder(Order.desc(key));
                }
            }
        }
        return (List<StdCDACatalogModel>) criteria.list();
    }
}

+ 0 - 203
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdCDADatasetService.java

@ -1,203 +0,0 @@
package com.yihu.hos.rest.services.standard.standard;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.models.standard.bo.StandardVersion;
import com.yihu.hos.rest.models.standard.standard.StdCDADatasetModel;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import com.yihu.hos.web.framework.util.sql.BeanTransformer;
import com.yihu.hos.web.framework.util.sql.RequestParamTransformer;
import com.yihu.hos.web.framework.util.sql.SqlCreator;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
 * @author AndyCai
 * @version 1.0
 * @created 02-9月-2015 14:00:55
 */
@Transactional
@Service("StdCDADatasetService")
public class StdCDADatasetService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StdCDADatasetService";
    public StdCDADatasetService() {
    }
    public void finalize() throws Throwable {
    }
    public List<StdCDADatasetModel> getList(String stdVersion, String condition, String order, Integer limit, Integer offset) {
        try {
            Map queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map orderMap = RequestParamTransformer.parseJsonToMap(order);
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            return this.getList(standardVersion, queryMap, orderMap, limit, offset);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDADatasetGetListFailed);
    }
    public StdCDADatasetModel add(String stdVersion, String cdaDataset) {
        if (stdVersion.equals("{stdVersion}")) {
            throw new ApiException(ErrorCode.StandardCDADatasetMissVersion);
        }
        try {
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            ObjectMapper objectMapper = new ObjectMapper();
            StdCDADatasetModel stdCdaDatasetModel = objectMapper.readValue(cdaDataset, StdCDADatasetModel.class);
            this.add(standardVersion, stdCdaDatasetModel);
            return stdCdaDatasetModel;
        } catch (IOException e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDADatasetSaveFailed);
    }
    public void delete(String stdVersion, Integer cdadatasetId) {
        if (StringUtil.isEmpty(stdVersion)) {
            throw new ApiException(ErrorCode.StandardCDADatasetMissVersion);
        }
        if (cdadatasetId == null) {
            throw new ApiException(ErrorCode.StandardCDADatasetMissID);
        }
        try {
            if (cdadatasetId != null) {
                StandardVersion standardVersion = new StandardVersion(stdVersion);
                Session session = getCurrentSession();
                String sql = "delete from " + standardVersion.getCDADatasetTableName() + " where id = :id";
                Query query = session.createSQLQuery(sql);
                query.setInteger("id", cdadatasetId);
                query.executeUpdate();
            }
        } catch (Exception e) {
            throw new ApiException(ErrorCode.StandardCDADatasetDeleteFailed);
        }
    }
    public StdCDADatasetModel update(String stdVersion, String cdaDataset) {
        if (stdVersion.equals("{stdVersion}")) {
            throw new ApiException(ErrorCode.StandardCDADatasetMissVersion);
        }
        try {
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            ObjectMapper objectMapper = new ObjectMapper();
            StdCDADatasetModel stdCdaDatasetModel = objectMapper.readValue(cdaDataset, StdCDADatasetModel.class);
            this.modify(standardVersion, stdCdaDatasetModel);
            return stdCdaDatasetModel;
        } catch (IOException e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDADatasetUpdateFailed);
    }
    public StdCDADatasetModel get(String stdVersion, Integer cdadatasetId) {
        if (StringUtil.isEmpty(stdVersion)) {
            throw new ApiException(ErrorCode.StandardCDADatasetMissVersion);
        }
        if (cdadatasetId == null) {
            throw new ApiException(ErrorCode.StandardCDADatasetMissID);
        }
        try {
            if (cdadatasetId != null) {
                StandardVersion standardVersion = new StandardVersion(stdVersion);
                Session session = getCurrentSession();
                String cdaDatasetTableName = standardVersion.getCDADatasetTableName();
                String sql = "select id, cda_id, dataset_id from " + cdaDatasetTableName + " where id = :id";
                Query query = session.createSQLQuery(sql);
                query.setInteger("id", cdadatasetId);
                query.setResultTransformer(new BeanTransformer<>(StdCDADatasetModel.class));
                return (StdCDADatasetModel) query.uniqueResult();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDADatasetGetFailed);
    }
    private void modify(StandardVersion standardVersion, StdCDADatasetModel stdCdaDatasetModel) {
        Session session = getCurrentSession();
        String cdaDatasetTableName = standardVersion.getCDADatasetTableName();
        String sql = "update " + cdaDatasetTableName +
                "set " +
                "id = :id, " +
                "cda_id = :cda_id, " +
                "dataset_id = :dataset_id " +
                "where id = :id";
        Query query = session.createSQLQuery(sql);
        query.setInteger("id", stdCdaDatasetModel.getId());
        query.setInteger("cda_id", stdCdaDatasetModel.getCdaID());
        query.setInteger("dataset_id", stdCdaDatasetModel.getdatasetId());
        query.executeUpdate();
    }
    private void add(StandardVersion standardVersion, StdCDADatasetModel stdCdaDatasetModel) {
        Session session = getCurrentSession();
        String cdaDatasetTableName = standardVersion.getCDADatasetTableName();
        ObjectMapper objectMapper = new ObjectMapper();
        String sql = "select max(id) from " + cdaDatasetTableName;
        Query query = session.createSQLQuery(sql);
        Object object = query.uniqueResult();
        stdCdaDatasetModel.setId(object == null ? 1 : Integer.parseInt(object.toString()) + 1);
        sql = "insert into " + cdaDatasetTableName + "(id, cda_id, dataset_id)"
                + "VALUES (:id, :cda_id, :dataset_id)";
        query = session.createSQLQuery(sql);
        query.setInteger("id", stdCdaDatasetModel.getId());
        query.setInteger("cda_id", stdCdaDatasetModel.getCdaID());
        query.setInteger("dataset_id", stdCdaDatasetModel.getdatasetId());
        query.executeUpdate();
    }
    private List<StdCDADatasetModel> getList(StandardVersion standardVersion, Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdCDADatasetModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));
        }
        for (String key : order.keySet()) {
            sqlCreator.order(key, order.get(key));
        }
        String sql = sqlCreator.selectData(standardVersion.getCDADatasetTableName());
        Query sessionQuery = getQuery(sqlCreator, sql);
        if (limit != null) {
            sessionQuery.setMaxResults(limit);
            if (offset != null) {
                sessionQuery.setFirstResult((offset - 1) * limit);
            }
        }
        return (List<StdCDADatasetModel>) sessionQuery.list();
    }
}//end CDADatasetRelationshipManager

+ 0 - 178
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdCDAService.java

@ -1,178 +0,0 @@
package com.yihu.hos.rest.services.standard.standard;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.rest.models.standard.bo.StandardVersion;
import com.yihu.hos.rest.models.standard.standard.StdCDAModel;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import com.yihu.hos.web.framework.util.sql.BeanTransformer;
import com.yihu.hos.web.framework.util.sql.RequestParamTransformer;
import com.yihu.hos.web.framework.util.sql.SqlCreator;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
 * @author AndyCai
 * @version 1.0
 * @created 01-9月-2015 17:17:50
 */
@Transactional
@Service("StdCDAService")
public class StdCDAService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StdCDAService";
    public StdCDAService() {
    }
    public List<StdCDAModel> getList(String stdVersion, String condition, String order, Integer limit, Integer offset) {
        try {
            Map queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map orderMap = RequestParamTransformer.parseJsonToMap(order);
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            return this.getList(standardVersion, queryMap, orderMap, limit, offset);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDAGetListFailed);
    }
    public Object add(String stdVersion, String cda) {
        if (stdVersion.equals("{stdVersion}")) {
            throw new ApiException(ErrorCode.StandardCDAMissVersion);
        }
        try {
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            ObjectMapper objectMapper = new ObjectMapper();
            StdCDAModel stdCdaModel = objectMapper.readValue(cda, StdCDAModel.class);
            this.add(standardVersion, stdCdaModel);
            return stdCdaModel.getId();
        } catch (IOException e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDASaveFailed);
    }
    public void delete(String stdVersion, Integer cdaId) {
        if (StringUtil.isEmpty(stdVersion)) {
            throw new ApiException(ErrorCode.StandardCDAMissVersion);
        }
        try {
            if (cdaId != null) {
                StandardVersion standardVersion = new StandardVersion(stdVersion);
                Session session = getCurrentSession();
                String sql = "delete from " + standardVersion.getCDATableName() + " where id = :id";
                Query query = session.createSQLQuery(sql);
                query.setInteger("id", cdaId);
                query.executeUpdate();
            }
        } catch (Exception e) {
            throw new ApiException(ErrorCode.StandardCDADeleteFailed);
        }
    }
    public Object update(String stdVersion, String cda) {
        if (stdVersion.equals("{stdVersion}")) {
            throw new ApiException(ErrorCode.StandardCDAMissVersion);
        }
        try {
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            ObjectMapper objectMapper = new ObjectMapper();
            StdCDAModel stdCdaModel = objectMapper.readValue(cda, StdCDAModel.class);
            this.modify(standardVersion, stdCdaModel);
            return stdCdaModel;
        } catch (IOException e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDAUpdateFailed);
    }
    public StdCDAModel get(String stdVersion, Integer cdaId) {
        if (stdVersion.equals("{stdVersion}")) {
            throw new ApiException(ErrorCode.StandardCDAMissVersion);
        }
        try {
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            return this.get(standardVersion, cdaId);
        } catch (Exception e) {
        }
        throw new ApiException(ErrorCode.StandardCDAGetFailed);
    }
    private StdCDAModel get(StandardVersion standardVersion, Integer cdaId) {
        Session session = getCurrentSession();
        String cdaTableName = standardVersion.getCDATableName();
        String sql = "select id, std_id, code, name, path, description, catalog_id from " + cdaTableName + " where id = :id";
        Query query = session.createSQLQuery(sql);
        query.setInteger("id", cdaId);
        query.setResultTransformer(new BeanTransformer<>(StdCDAModel.class));
        return (StdCDAModel) query.uniqueResult();
    }
    private void modify(StandardVersion standardVersion, StdCDAModel stdCdaModel) throws IOException {
        String cdaTableName = standardVersion.getCDATableName();
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(stdCdaModel));
        SqlCreator sqlCreator = new SqlCreator(StdCDAModel.class);
        String sql = sqlCreator.updateDataByTableKey(cdaTableName, jsonNode);
        Query query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    }
    private void add(StandardVersion standardVersion, StdCDAModel stdCdaModel) throws IOException {
        String cdaTableName = standardVersion.getCDATableName();
        ObjectMapper objectMapper = new ObjectMapper();
        Session session = getCurrentSession();
        String sql = "select max(id) from " + cdaTableName;
        Query query = session.createSQLQuery(sql);
        Object object = query.uniqueResult();
        stdCdaModel.setId(object == null ? 1 : Integer.parseInt(object.toString()) + 1);
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(stdCdaModel));
        SqlCreator sqlCreator = new SqlCreator(StdCDAModel.class);
        sql = sqlCreator.insertData(cdaTableName, jsonNode);
        query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    }
    private List<StdCDAModel> getList(StandardVersion standardVersion, Map<String, Object> query,  Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdCDAModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));
        }
        for (String key : order.keySet()) {
            sqlCreator.order(key, order.get(key));
        }
        String sql = sqlCreator.selectData(standardVersion.getCDATableName());
        Query sessionQuery = getQuery(sqlCreator, sql);
        if (limit != null) {
            sessionQuery.setMaxResults(limit);
            if (offset != null) {
                sessionQuery.setFirstResult((offset - 1) * limit);
            }
        }
        return (List<StdCDAModel>) sessionQuery.list();
    }
}//end CDADocumentManager

+ 0 - 148
hos-rest/src/main/java/com/yihu/hos/rest/services/standard/standard/StdDatasetCatalogService.java

@ -1,148 +0,0 @@
package com.yihu.hos.rest.services.standard.standard;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.rest.models.standard.standard.StdDatasetCatalogModel;
import com.yihu.hos.web.framework.constrant.ErrorCode;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.exception.ApiException;
import com.yihu.hos.web.framework.util.sql.RequestParamTransformer;
import com.yihu.hos.web.framework.util.sql.SqlCreator;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
 * @created Airhead 2015/12/28.
 */
@Transactional
@Service("StdDatasetCatalogService")
public class StdDatasetCatalogService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StdDatasetCatalogService";
    public StdDatasetCatalogService() {
    }
    public void finalize() throws Throwable {
    }
    public List<StdDatasetCatalogModel> getList(String condition, String order, Integer limit, Integer offset) {
        try {
            Map queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map orderMap = RequestParamTransformer.parseJsonToMap(order);
            return this.getList(queryMap, orderMap, limit, offset);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardDatasetCatalogGetListFailed);
    }
    public Object add(String catalog) throws Exception {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StdDatasetCatalogModel stdDatasetCatalogModel = objectMapper.readValue(catalog, StdDatasetCatalogModel.class);
            this.add(stdDatasetCatalogModel);
            return stdDatasetCatalogModel.getId();
        } catch (IOException e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardDatasetCatalogSaveFailed);
    }
    public void delete(Integer catalogId) throws Exception {
        try {
            if (catalogId != null) {
                StdDatasetCatalogModel cdaCatalogModel = get(catalogId);
                deleteEntity(cdaCatalogModel);
            }
        } catch (DataAccessException e) {
            throw new ApiException(ErrorCode.StandardDatasetCatalogDeleteFailed);
        }
    }
    public Object update(String catalog) throws Exception {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            StdDatasetCatalogModel stdDatasetCatalogModel = objectMapper.readValue(catalog, StdDatasetCatalogModel.class);
            this.modify(stdDatasetCatalogModel);
            return stdDatasetCatalogModel;
        } catch (IOException e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardDatasetCatalogUpdateFailed);
    }
    public StdDatasetCatalogModel get(Integer catalogId) {
        if (catalogId == null) {
            throw new ApiException(ErrorCode.StandardDatasetCatalogMissID);
        }
        
        try {
            if (catalogId != null) {
                Session session = getCurrentSession();
                String hql = "FROM StdDatasetCatalogModel where id = ?";
                Query query = session.createQuery(hql);
                query.setParameter(0, catalogId);
                return (StdDatasetCatalogModel) query.uniqueResult();
            }
        } catch (DataAccessException e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardDatasetCatalogGetFailed);
    }
    private void modify(StdDatasetCatalogModel stdDatasetCatalogModel)  throws Exception {
        updateEntity(stdDatasetCatalogModel);
    }
    private void add(StdDatasetCatalogModel stdDatasetCatalogModel)  throws Exception {
        ObjectMapper objectMapper = new ObjectMapper();
        Session session = getCurrentSession();
        String sql = "select max(id) from " + StdDatasetCatalogModel.TABLE_NAME;
        Query query = session.createSQLQuery(sql);
        Object object = query.uniqueResult();
        stdDatasetCatalogModel.setId(object == null ? 1 : Integer.parseInt(object.toString()) + 1);
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(stdDatasetCatalogModel));
        SqlCreator sqlCreator = new SqlCreator(StdDatasetCatalogModel.class);
        sql = sqlCreator.insertData(StdDatasetCatalogModel.TABLE_NAME, jsonNode);
        query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    }
    private List<StdDatasetCatalogModel> getList(Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdDatasetCatalogModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));
        }
        for (String key : order.keySet()) {
            sqlCreator.order(key, order.get(key));
        }
        String sql = sqlCreator.selectData(StdDatasetCatalogModel.TABLE_NAME);
        Query sessionQuery = getQuery(sqlCreator, sql);
        if (limit != null) {
            sessionQuery.setMaxResults(limit);
            if (offset != null) {
                sessionQuery.setFirstResult((offset - 1) * limit);
            }
        }
        return (List<StdDatasetCatalogModel>) sessionQuery.list();
    }
}

+ 2 - 2
hos-rest/src/main/resources/application.yml

@ -15,11 +15,11 @@ qlc:
    port: 2181
crawler:
  upload:
    ip: localhost
    ip: 192.168.131.96
    port: 8088
    api: crawler/patient
  storage:
    ip: localhost
    ip: 192.168.131.96
    port: 8088
    api: crawler/datapush

+ 2 - 2
hos-rest/src/main/resources/config/dbhelper.properties

@ -3,5 +3,5 @@ defaultUri = jdbc:mysql://192.168.1.220:3306/hos2?useUnicode=true&characterEncod
defaultUser = hos2
defaultPassword = hos2
mongodbUri=mongodb://hos:hos@172.19.103.42/?authSource=admin
               mongodbName=hos
mongodbUri=mongodb://admin:admin@192.168.131.96/?authSource=admin
mongodbName=hos

+ 11 - 0
hos-rest/src/main/resources/config/http.properties

@ -0,0 +1,11 @@
httpUrl = https://172.19.103.73:443/api/v1.0
#  http://172.19.103.73:1443/api/v1.0
#\uFFFD\uFFFDhttps://192.168.131.15:4432/api/v1.0
  #https://172.19.103.73:443/api/v1.0
sslKeystore = D:/tomcat.keystore
sslPassword = 123456
clientId = 1FtXTrSL8D
clientKey = MUZ0WFRyU0w4RDp1c3ZOeWxWc0ZvdFVlQ2tE

+ 31 - 0
hos-rest/src/main/resources/config/sys.config.xml

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <!--<temp_file>D:\temp</temp_file>-->
    <ehr_version>
        <org_code code="jkzl">
            <version>56395d75b854</version>
        </org_code>
    </ehr_version>
    <event_no>
        <item>HDSD03_01_031</item>
        <item>HDSD00_01_579</item>
        <item>EVENT_NO</item>
    </event_no>
    <patient_queue>
        <dataset code="HDSC01_02">
            <patient_id>PATIENT_ID</patient_id>
            <event_no>HDSD03_01_031</event_no>
            <ref_time>HDSD00_01_457</ref_time>
        </dataset>
        <dataset code="HDSC02_09">
            <patient_id>PATIENT_ID</patient_id>
            <event_no>HDSD00_01_579</event_no>
            <ref_time>HDSD00_01_185</ref_time>
        </dataset>
    </patient_queue>
    <register>
        <dataset code="HDSA00_01">
            <id_card>HDSA00_01_017</id_card>
        </dataset>
    </register>
</config>

+ 34 - 0
hos-rest/src/main/resources/hibernate/RsDatapushLog.hbm.xml

@ -0,0 +1,34 @@
<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.yihu.hos.rest.models.rs.RsDatapushLog" table="rs_datapush_log">
        <id name="id" type="java.lang.String">
            <column name="id" length="50" />
            <generator class="uuid" />
        </id>
        <property name="type" type="java.lang.String">
            <column name="type" length="50" not-null="true">
                <comment>鏃ュ織绫诲瀷 1鏁版嵁閲囬泦 2妗f涓婁紶 3浜哄彛娉ㄥ唽</comment>
            </column>
        </property>
        <property name="content" type="java.lang.String">
            <column name="content" length="2000" not-null="true">
                <comment>鏃ュ織鍐呭</comment>
            </column>
        </property>
        <property name="success" type="java.lang.String">
            <column name="success" length="50" not-null="true">
                <comment>鏄惁鎴愬姛</comment>
            </column>
        </property>
        <property name="datetime" type="java.sql.Timestamp">
            <column name="datetime" length="0">
                <comment>鏃ュ織鏃堕棿</comment>
            </column>
        </property>
    </class>
</hibernate-mapping>

+ 1 - 1
hos-rest/src/main/resources/hibernate/SystemParam.hbm.xml

@ -5,7 +5,7 @@
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.yihu.hos.rest.models.standard.SystemParam" table="system_param">
    <class name="com.yihu.hos.rest.models.standard.bo.SystemParam" table="system_param">
        <id name="id" type="java.lang.String">
            <column name="id" length="50" />
            <generator class="uuid" />