刘韬 1 yıl önce
ebeveyn
işleme
44c96c1bf9

+ 5 - 0
DataFusion/.classpath

@@ -25,5 +25,10 @@
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/okio-2.2.2.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sqljdbc42.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jfinal-4.8-bin-with-src.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-codec-1.9.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io-2.5.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang3-3.4.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging-1.2.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-pool2-2.3.jar"/>
 	<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
 </classpath>

BIN
DataFusion/WebRoot/WEB-INF/lib/commons-codec-1.9.jar


BIN
DataFusion/WebRoot/WEB-INF/lib/commons-io-2.5.jar


BIN
DataFusion/WebRoot/WEB-INF/lib/commons-lang3-3.4.jar


BIN
DataFusion/WebRoot/WEB-INF/lib/commons-logging-1.2.jar


BIN
DataFusion/WebRoot/WEB-INF/lib/commons-pool2-2.3.jar


+ 1 - 0
DataFusion/key.txt

@@ -0,0 +1 @@
+{"code":"0200","data":{"key":"7d1fd5324d25b3bc83d64653b14df796","expirationtime":null},"msg":"success"}

+ 124 - 31
DataFusion/src/com/zskk/service/DataService.java

@@ -1,8 +1,20 @@
 package com.zskk.service;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.security.KeyFactory;
+import java.security.PrivateKey;
+import java.security.Signature;
+import java.util.Date;
 import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.codec.binary.Base64;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -36,29 +48,29 @@ public class DataService {
      * @param instutionId
      * @param number
      */
-    public JSONArray getExamList(Integer number) {
-    	Map <String,String> map = new HashMap<String,String>();
-    	map.put("institution_id", PropKit.get("institution_id"));
-    	map.put("num", number.toString());
-		String content = postWithParameters(GET_EXAM_URL, map);
-	    JSONObject jsonObject = JSON.parseObject(content);
-	    if (!jsonObject.getString("msg").equals("success")) {
-			return null;
-		}
-		JSONArray jsonArray = JSON.parseArray(jsonObject.getString("data"));		
-		return jsonArray;
-		
-	}
+//    public JSONArray getExamList(Integer number) {
+//    	Map <String,String> map = new HashMap<String,String>();
+//    	map.put("institution_id", PropKit.get("institution_id"));
+//    	map.put("num", number.toString());
+//		String content = postWithParameters(GET_EXAM_URL, map);
+//	    JSONObject jsonObject = JSON.parseObject(content);
+//	    if (!jsonObject.getString("msg").equals("success")) {
+//			return null;
+//		}
+//		JSONArray jsonArray = JSON.parseArray(jsonObject.getString("data"));		
+//		return jsonArray;
+//		
+//	}
     
     /**
      * 写入报告
      * @param instutionId
      * @param number
      */
-    public void saveReport(Map <String,String> map) {
-		postWithParameters(SAVE_REPORT_URL, map);
-		
-	}
+//    public void saveReport(Map <String,String> map) {
+//		postWithParameters(SAVE_REPORT_URL, map);
+//		
+//	}
     
     /**
     * 更新患者信息
@@ -66,18 +78,18 @@ public class DataService {
     * @param instutionId
     * @param number
     */
-    public void updatePatientInfo(Map<String, String> map) {
-    postWithParameters(UPDATE_PATIENT_URL, map);
-    }
+//    public void updatePatientInfo(Map<String, String> map) {
+//    postWithParameters(UPDATE_PATIENT_URL, map);
+//    }
     
     /*
      * 医院代收
      */
-    public void fee(JSONObject jsonObject) {
-    	postWithJson(FEE_URL, jsonObject);
-    }
+//    public void fee(JSONObject jsonObject) {
+//    	postWithJson(FEE_URL, jsonObject);
+//    }
     
-    public static String postWithParameters(String url, Map<String, String> map) {
+    public static String postWithParameters(String url, Map<String, String> map,String sj,String ps) throws Exception {
     	
     	FormBody.Builder formbody = new FormBody.Builder();
     	
@@ -88,12 +100,14 @@ public class DataService {
 		
 		Request request = new Request.Builder()
 		        .url(url)
+		        .header("orgId", "10179").addHeader("hospitalId", "10179001").addHeader("appId", "app5994124361340817290").addHeader("signType", "RSA2").addHeader("sign", getSign(ps,"MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKpWTmdc7hhqndi2NjKQZ706GnQpRbIRCQifuUBTyENSj3ZaHDzoJF4d/KjejFL5XQUAb+6BFtG0qBMLn+CNiIRHzS+mITEWPf0ab0ksFe1MjtU4kY+Ie39YU+6/w7cFeoSvsokz03zsXG6TdvKvm1f3HhlMtmwLZKamn5LlbdDjAgMBAAECgYBeyVol0KO5uJKPxo2QQ6VGum+AFntvJGWng+I9dqHpPKcSkABIsFGUghFYE0d44MSvhNfEm9cL6QDiYESeW4QMVY88Drlu+yb0VKQbA9m+tgBrXXItKcpl2BsRiSuA2auck1FbhBCT9flWWU4emnBHzcAE4Ljm4dvK4U8xODxhyQJBAPAdEoeDwQomz97T/d5l29D/zqK1vMwHiHI9dKw8WKb1OvKy6EdZCTgKxK0oiEQcEss//aBYsUA3hoQ78Hd0NW8CQQC1m2T3Uo+f49MRcYeTF8QLJRp+fIbqwfvH6vxNqIeEaqPCRx41Ko+f7L8r9YiNKEC2slmjPfuGDIcupuvWk+nNAkA4qRObSNr/s0LwOSQ6G90wR30SZkJj/w8Sri/fCOp+k3XSmac4VulXASuCFQN61wkUT0hhUyyYk8G5aI+JELIfAkAneUhf7cUkJtwI7ZlfYooNNhplJeIZguKcWLpQkvIp2RgRMW4idkbTpx0CjBMLQ5WVYHzVW7KhN3XmsQeQE4R9AkBagT4KPrDgOBoTm8WADsYlie88DVSlXaXTGyWG59ypBuI37QZwsFfdlkoN3cAjCVseyEuUydF5pX1Pyc3CPryO")).addHeader("timestamp", sj)
 		        .post(requestBody)
 		        .build();
 
 		    try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
 		      if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
 		      String content = response.body().string();
+		      System.out.println(content);
 		      return content;
 		    } catch (IOException e) {
 				// TODO Auto-generated catch block
@@ -102,11 +116,11 @@ public class DataService {
 			}	
 	}
     
-    public String postWithJson(String url, JSONObject jsonObject) {
+    public static String postWithJson(String url, JSONObject jsonObject,String sj,String ps) throws Exception {
 
 		RequestBody requestBody = RequestBody.create(JSON_TYPE, jsonObject.toJSONString());
 
-		Request request = new Request.Builder().url(url).post(requestBody).build();
+		Request request = new Request.Builder().url(url).header("orgId", "10179").addHeader("hospitalId", "10179001").addHeader("appId", "app5994124361340817290").addHeader("signType", "RSA2").addHeader("sign", getSign(ps,"MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKpWTmdc7hhqndi2NjKQZ706GnQpRbIRCQifuUBTyENSj3ZaHDzoJF4d/KjejFL5XQUAb+6BFtG0qBMLn+CNiIRHzS+mITEWPf0ab0ksFe1MjtU4kY+Ie39YU+6/w7cFeoSvsokz03zsXG6TdvKvm1f3HhlMtmwLZKamn5LlbdDjAgMBAAECgYBeyVol0KO5uJKPxo2QQ6VGum+AFntvJGWng+I9dqHpPKcSkABIsFGUghFYE0d44MSvhNfEm9cL6QDiYESeW4QMVY88Drlu+yb0VKQbA9m+tgBrXXItKcpl2BsRiSuA2auck1FbhBCT9flWWU4emnBHzcAE4Ljm4dvK4U8xODxhyQJBAPAdEoeDwQomz97T/d5l29D/zqK1vMwHiHI9dKw8WKb1OvKy6EdZCTgKxK0oiEQcEss//aBYsUA3hoQ78Hd0NW8CQQC1m2T3Uo+f49MRcYeTF8QLJRp+fIbqwfvH6vxNqIeEaqPCRx41Ko+f7L8r9YiNKEC2slmjPfuGDIcupuvWk+nNAkA4qRObSNr/s0LwOSQ6G90wR30SZkJj/w8Sri/fCOp+k3XSmac4VulXASuCFQN61wkUT0hhUyyYk8G5aI+JELIfAkAneUhf7cUkJtwI7ZlfYooNNhplJeIZguKcWLpQkvIp2RgRMW4idkbTpx0CjBMLQ5WVYHzVW7KhN3XmsQeQE4R9AkBagT4KPrDgOBoTm8WADsYlie88DVSlXaXTGyWG59ypBuI37QZwsFfdlkoN3cAjCVseyEuUydF5pX1Pyc3CPryO")).addHeader("timestamp", sj).post(requestBody).build();
 
 		try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
 			if (!response.isSuccessful())
@@ -121,11 +135,90 @@ public class DataService {
 		}
 	}
     
-    public static void main(String[] args) {
+    public static String sj() {
+    	 Date date = new Date();
+    	 Long time =System.currentTimeMillis();;
+    	 return time.toString();
+	}
+    
+public static String presign(String sj) {
+	MessageDigest md=null;
+	try {
+		md = MessageDigest.getInstance("MD5");
+	} catch (NoSuchAlgorithmException e) {
+		// TODO Auto-generated catch block
+		e.printStackTrace();
+	}
+	Map <String,String> map = new HashMap<String,String>();
+	map.put("startDate", "2023-09-06 00:00:00");
+	map.put("endDate", "2023-09-06 12:00:00");
+	String data = JSON.toJSONString(map)+sj;
+	System.out.println(data);
+
+	String md5Str = Hex.encodeHexString(md.digest(data.getBytes(StandardCharsets.UTF_8)));
+	return md5Str;
+
+}
+    
+    public static String getSign(String preStr, String appSecret)
+    		throws Exception {
+    	
+    		appSecret = appSecret.replace("-----BEGIN PRIVATE KEY-----",
+    		"").replace("-----END PRIVATE KEY-----", "").replace("\r",
+    		"").replace("\n", "").trim();
+    		String suite = "SHA256WithRSA";
+    		//初始化算法 SHA256
+    		Signature signature = Signature.getInstance(suite);
+    		PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(appSecret));
+    		//初始化私钥+RSA
+    		KeyFactory keyFac = KeyFactory.getInstance("RSA");
+    		PrivateKey privateKey = keyFac.generatePrivate(keySpec);
+    		signature.initSign(privateKey);
+    		//待签名字符串转 byte 数组使用 UTF8
+    		byte[] msgBuf = preStr.getBytes("UTF8");
+    		signature.update(msgBuf);
+    		byte[] byteSign = signature.sign();
+    		//签名值 byte 数组转字符串用 BASE64
+    		String strSign = Base64.encodeBase64String(byteSign);
+    		return strSign;
+    		}
+    
+    public static void main(String[] args) throws Exception {
     	Map <String,String> map = new HashMap<String,String>();
-    	map.put("institution_id", "47600001");
-    	map.put("num", "10");
-		postWithParameters(GET_EXAM_URL, map);
+    	map.put("startDate", "2023-09-06 00:00:00");
+    	map.put("endDate", "2023-09-06 12:00:00");
+    	String sj = sj();
+    	String ps = presign(sj);
+    	JSONObject gg = new JSONObject();
+    	gg.put("startDate", "2023-09-06 00:00:00");
+    	gg.put("endDate", "2023-09-06 12:00:00");
+    	postWithJson("https://nyxzyy.msunhis.com/msun-middle-business-pacs/v1/patients", gg,sj,ps);
+    	String aaa = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBA\n"
+    			+ "IxuagdiKqsvabbRxclFcLAIJXCBfj7nbMAnL5r+uUr3n2qXDXLRP8AoI\n"
+    			+ "pwa2kiVJdLLtK2dQlQD0b5VzNTTYDOWjC/SL2l41r8kXxBHD3cLjS\n"
+    			+ "SP2d0KxIrybdVrjof18Y/H0bS8uskNfoZcVOo/lH6z3c9RUrZUnAvFQd\n"
+    			+ "GiQZXrAgMBAAECgYBj71dI9dUDiXQjg9jKyL3Op51tGNnsjehYPgq\n"
+    			+ "ktEzMSreJtQD/CmXhqy4mBP391RXbktd7DYRcIXOrjYd8lQfJ2xCmvp\n"
+    			+ "WMMqeQ1uzxTddHfl3FrlPLqc5UZLdjiAxINme33TDarscsc/KnDy1WE\n"
+    			+ "85pE5iHwgZtbKgUsyOvY9nf0QJBAOhMzUzc9Lw5QJxV+zFGWDJw\n"
+    			+ "Hy1G956Wzgxz9ljLAYQEskgOrDVVuwSiJMxWNMasksCZzkkIMkPi\n"
+    			+ "KjxPhUroZFUCQQCawjDZSBPMZGN6fVcG1IT9r4kUIzy78jPA1o2hG\n"
+    			+ "5c0dXcUJl1QuWeC9DssOSC5Btpzdb0bfaqMgfkCtAnAClE/AkEA3qim\n"
+    			+ "67KqPjPeUzsyvyM+7HF94KcyN2cy7srD6I4E0Oazf8/YjnKzBJjqDpXel\n"
+    			+ "kPZkhSannPlwh1pAE/0Yj1n1QJAWkdEJcylOAur+G2b0fExr6exyJyRtn\n"
+    			+ "Yg+LJwpnYo68JGd+u1bfzqRHti9XZR/33e+5HIgnv5fMPpVklekreyEwJ\n"
+    			+ "AFAeBw+T39QRWf5gPs1mGGMKKpBpfk74Pk9r+W9Uk7thP0pzmbo\n"
+    			+ "RM5ExXt960uoEn9OY9MfIrmFzwhku+8lLIBg==";
+    	
+    	String bb = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKpWTmdc7hhqndi2NjKQZ706GnQpRbIRCQifuUBTyENSj3ZaHDzoJF4d/KjejFL5XQUAb+6BFtG0qBMLn+CNiIRHzS+mITEWPf0ab0ksFe1MjtU4kY+Ie39YU+6/w7cFeoSvsokz03zsXG6TdvKvm1f3HhlMtmwLZKamn5LlbdDjAgMBAAECgYBeyVol0KO5uJKPxo2QQ6VGum+AFntvJGWng+I9dqHpPKcSkABIsFGUghFYE0d44MSvhNfEm9cL6QDiYESeW4QMVY88Drlu+yb0VKQbA9m+tgBrXXItKcpl2BsRiSuA2auck1FbhBCT9flWWU4emnBHzcAE4Ljm4dvK4U8xODxhyQJBAPAdEoeDwQomz97T/d5l29D/zqK1vMwHiHI9dKw8WKb1OvKy6EdZCTgKxK0oiEQcEss//aBYsUA3hoQ78Hd0NW8CQQC1m2T3Uo+f49MRcYeTF8QLJRp+fIbqwfvH6vxNqIeEaqPCRx41Ko+f7L8r9YiNKEC2slmjPfuGDIcupuvWk+nNAkA4qRObSNr/s0LwOSQ6G90wR30SZkJj/w8Sri/fCOp+k3XSmac4VulXASuCFQN61wkUT0hhUyyYk8G5aI+JELIfAkAneUhf7cUkJtwI7ZlfYooNNhplJeIZguKcWLpQkvIp2RgRMW4idkbTpx0CjBMLQ5WVYHzVW7KhN3XmsQeQE4R9AkBagT4KPrDgOBoTm8WADsYlie88DVSlXaXTGyWG59ypBuI37QZwsFfdlkoN3cAjCVseyEuUydF5pX1Pyc3CPryO\n";
+    	String aaa1 = getSign("2f2b0ec46ea8cfe4e256649eb873777d",aaa.replaceAll("\n",""));
+    	
+    	String bbbq = getSign(ps,bb);
+
+    	System.out.println(aaa1);
+    	System.out.println(bbbq);
+
+
 	}
 
 }