Browse Source

采集上传服务调试

zhenglingfeng 8 years ago
parent
commit
7df1b49945

+ 1 - 1
hos-core/src/main/java/com/yihu/hos/core/http/CustomTrustClientClientImpl.java

@ -83,7 +83,7 @@ class CustomTrustClientClientImpl extends DefaultClientImpl {
                throw new IllegalStateException("Unexpectd default trust managers:" + Arrays.toString(trustManagers));
            }
            SSLContext sslContext = SSLContext.getInstance("TLS");
            SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, trustManagers, new SecureRandom());
            SSLSocketFactory socketFactory = sslContext.getSocketFactory();

+ 12 - 6
hos-core/src/main/java/com/yihu/hos/core/http/DefaultClientImpl.java

@ -125,14 +125,20 @@ class DefaultClientImpl implements HTTPClient {
        try {
            File file = new File(path);
            final MediaType textPlain = MediaType.parse("text/plain; charset=utf-8");
            Request.Builder builder = new Request.Builder();
            final MediaType type = MediaType.parse("application/zip");
            Request.Builder requestBuilder = new Request.Builder();
            if (headers != null) {
                builder.headers(Headers.of(headers));
                requestBuilder.headers(Headers.of(headers));
            }
            Request request = builder
                    .url(formatURL(url, params))
                    .post(RequestBody.create(textPlain, file))
            MultipartBody.Builder multipartBuilder = new MultipartBody.Builder();
            multipartBuilder.setType(MultipartBody.FORM)
                    .addFormDataPart("pack", file.getName(), RequestBody.create(type, file));
            for (String key : params.keySet()) {
                multipartBuilder.addFormDataPart(key, params.get(key));
            }
            Request request = requestBuilder
                    .url(url)
                    .post(multipartBuilder.build())
                    .build();
            Response response = httpClient.newCall(request).execute();

+ 22 - 3
hos-core/src/main/java/com/yihu/hos/core/http/HttpClientKit.java

@ -1,6 +1,7 @@
package com.yihu.hos.core.http;
import javafx.util.Pair;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import java.util.HashMap;
import java.util.Map;
@ -10,6 +11,7 @@ import java.util.Map;
 */
public class HttpClientKit {
    private static Map<String, Pair<String, String>> keyStoreMap = new HashMap<>();
    private static Map<String, SSLConnectionSocketFactory> keyStoreSSLMap = new HashMap<>();
    /**
     * 用于HTTP和受信HTTPS
@ -46,6 +48,10 @@ public class HttpClientKit {
        keyStoreMap.put(host, new Pair<>(file, password));
    }
    public static void addKeyStoreSSL(String host, SSLConnectionSocketFactory sslConnectionSocketFactory) throws Exception {
        keyStoreSSLMap.put(host, sslConnectionSocketFactory);
    }
    public static HTTPResponse get(String url) {
        return use().get(url);
    }
@ -83,11 +89,19 @@ public class HttpClientKit {
    }
    public static HTTPResponse postFile(String url, String path, Map<String, String> params) {
        return use().postFile(url, path, params);
        if (url.startsWith("https")) {
            return custom(url).postFile(url, path, params);
        } else {
            return use().postFile(url, path, params);
        }
    }
    public static HTTPResponse postFile(String url, String path, Map<String, String> params, Map<String, String> headers) {
        return use().postFile(url, path, params, headers);
        if (url.startsWith("https")) {
            return custom(url).postFile(url, path, params, headers);
        } else {
            return use().postFile(url, path, params, headers);
        }
    }
    public static HTTPResponse put(String url) {
@ -123,6 +137,11 @@ public class HttpClientKit {
    }
    public static HTTPResponse request(String method, String url, Map<String, String> params, Map<String, String> headers) {
        return use().request(method, url, params, headers);
        if (url.startsWith("https")) {
            return custom(url).request(method, url, params, headers);
        } else {
            return use().request(method, url, params, headers);
        }
    }
}

+ 17 - 12
hos-rest/src/main/java/com/yihu/hos/rest/common/http/EHRHttpHelper.java

@ -3,11 +3,15 @@ package com.yihu.hos.rest.common.http;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
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 javax.net.ssl.SSLContext;
import java.io.File;
import java.util.Map;
import java.util.Properties;
@ -17,6 +21,7 @@ public class EHRHttpHelper {
    public static String defaultHttpUrl;
    public static String clientId;
    public static String clientKey;
    private static SSLConnectionSocketFactory defaultSSL;
    private static String defaultHttpUser;
    private static String defaultHttpPassword;
@ -46,6 +51,16 @@ public class EHRHttpHelper {
                HttpClientKit.addKeyStore(defaultHttpUrl, sslKeystore, sslPassword);
            }
            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);
            HttpClientKit.addKeyStoreSSL(defaultHttpUrl, defaultSSL);
        } catch (Exception e) {
            System.out.print(e.getMessage());
        }
@ -107,21 +122,11 @@ public class EHRHttpHelper {
    }
    public static HTTPResponse postFile(String url, Map<String, String> formParams, String filePath, Map<String, String> header) {
        if (url.startsWith("https")) {
            return HttpClientKit.postFile(url, filePath, formParams);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientKit.postFile(url, filePath, formParams);
        }
        return HttpClientKit.postFile(url, filePath, formParams);
    }
    public static HTTPResponse postFile(String url, Map<String, String> formParams, File file, Map<String, String> header) {
        if (url.startsWith("https")) {
            return HttpClientKit.postFile(url, file.getAbsolutePath(), formParams);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientKit.postFile(url, file.getAbsolutePath(), formParams);
        }
        return HttpClientKit.postFile(url, file.getAbsolutePath(), formParams);
    }
    /**************************

+ 0 - 3
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/DataCollectDispatcher.java

@ -320,9 +320,6 @@ public class DataCollectDispatcher {
    public Boolean upload(Map<String, JsonNode> dataMap, Patient patient, Map<String, AdapterDataSet> dataSetMap) {
        Boolean result = true;
        Map<String, JsonNode> resultMap = new HashMap<>();
        Map<String, JsonNode> mainMap = new HashMap<>();
        Map<String, JsonNode> thinMap = new HashMap<>();
        try {
            DataSetTransformer dataTransformer = new DataSetTransformer();
            for (String key : dataMap.keySet()) {

+ 3 - 2
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/DatacollectService.java

@ -18,8 +18,8 @@ import com.yihu.hos.rest.models.crawler.config.SysConfig;
import com.yihu.hos.rest.models.crawler.patient.PatientIdentity;
import com.yihu.hos.rest.models.rs.*;
import com.yihu.hos.rest.services.standard.StdService;
import com.yihu.hos.web.framework.constrant.DateConvert;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import com.yihu.hos.web.framework.constant.DateConvert;
import com.yihu.hos.web.framework.constant.SqlConstants;
import com.yihu.hos.web.framework.model.ActionResult;
import com.yihu.hos.web.framework.util.GridFSUtil;
import org.bson.types.ObjectId;
@ -708,6 +708,7 @@ public class DatacollectService {
                        }
                        message = jobDatasetName + "采集成功" + successCount + "条数据,总条数" + count + "条。";
                        System.out.println(message);
                    }
                }
            } else {

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

@ -7,5 +7,5 @@ httpUrl = https://172.19.103.73:443/api/v1.0
sslKeystore = D:/tomcat.keystore
sslPassword = 123456
clientId = 1FtXTrSL8D
clientKey = MUZ0WFRyU0w4RDp1c3ZOeWxWc0ZvdFVlQ2tE
clientId = zkGuSIm2Fg
clientKey = emtHdVNJbTJGZzpnUGR2VFJBWVVoc2tjaHht

+ 1 - 0
src/main/java/com/yihu/hos/system/dao/AppDao.java

@ -15,6 +15,7 @@ import java.util.Map;
 */
@Repository("appDao")
public class AppDao extends SQLGeneralDAO implements IAppDao {
    public static final String BEAN_ID = "appDao";
    @Override
    public Result getAppList(Map<String, Object> params) throws Exception {
        StringBuilder sb = new StringBuilder("from SystemApp t where 1=1 ");

+ 1 - 0
src/main/java/com/yihu/hos/system/dao/AppServiceDao.java

@ -15,6 +15,7 @@ import java.util.Map;
 */
@Repository("appServiceDao")
public class AppServiceDao extends SQLGeneralDAO implements IAppServiceDao {
    public static final String BEAN_ID = "appServiceDao";
    @Override
    public Result getAppServiceList(Map<String, Object> params) throws Exception {
        StringBuilder sb = new StringBuilder("from SystemServiceEndpoint t where 1=1 ");

+ 45 - 0
src/main/java/com/yihu/hos/system/service/ProcessManager.java

@ -0,0 +1,45 @@
package com.yihu.hos.system.service;
import com.yihu.hos.system.dao.AppDao;
import com.yihu.hos.system.dao.AppServiceDao;
import com.yihu.hos.system.model.SystemServiceEndpoint;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * 系统流程管理业务类
 *
 * @author HZY
 * @vsrsion 1.0
 * Created at 2016/8/19.
 */
@Service("ProcessManager")
public class ProcessManager {
    public static final String BEAN_ID = "ProcessManager";
    @Resource(name = AppDao.BEAN_ID)
    private AppDao appDao;
    @Resource(name = AppServiceDao.BEAN_ID)
    private AppServiceDao appServiceDao;
    public String getAllApp() {
        String hql = "select * from SystemServiceEndpoint";
        List<SystemServiceEndpoint> serviceEndpointList = appServiceDao.getEntityList(SystemServiceEndpoint.class, hql);
        return null;
    }
    public String getAllAppService() {
        String hql = "select * from SystemServiceEndpoint";
        List<SystemServiceEndpoint> serviceEndpointList = appServiceDao.getEntityList(SystemServiceEndpoint.class, hql);
        return null;
    }
    public String getAppServiceByAppId(String appId) {
        String hql = "select * from SystemServiceEndpoint where appId = "+appId+"";
        List<SystemServiceEndpoint> serviceEndpointList = appServiceDao.getEntityList(SystemServiceEndpoint.class, hql);
        return null;
    }
}

+ 3 - 1
src/main/webapp/WEB-INF/ehr/jsp/system/process/processJs.jsp

@ -8,10 +8,11 @@
<script type="text/javascript" src="${contextRoot}/develop/lib/gooflow/json2.js"></script>
<script type="text/javascript" src="${contextRoot}/develop/lib/gooflow/goo/codebase/GooFlow.js"></script>
<script type="text/javascript">
    var property = {
        width: 1600,
        height: 700,
        toolBtns: ["start round", "end round", "task round", "node", "chat", "state", "plug", "join", "fork", "complex mix"],
        toolBtns: ["start round", "end round", "task round", "node", "chat", "chat","state", "plug", "join", "fork", "complex mix"],
        haveHead: true,
        headBtns: ["new", "open", "save", "undo", "redo", "reload"], //如果haveHead=true,则定义HEAD区的按钮
        haveTool: true,
@ -26,6 +27,7 @@
        "task": "任务结点",
        node: "自动结点",
        chat: "决策结点",
        chat: "决策结点",
        state: "状态结点",
        plug: "附加插件",
        fork: "分支结点",