zhangzhanping 5 лет назад
Родитель
Сommit
0d6bf46c78
1 измененных файлов с 89 добавлено и 8 удалено
  1. 89 8
      DataFusion/src/com/zskk/task/DataTask.java

+ 89 - 8
DataFusion/src/com/zskk/task/DataTask.java

@@ -1,45 +1,71 @@
 package com.zskk.task;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.jfinal.kit.HashKit;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.cron4j.ITask;
-import com.zskk.model.*;
+import com.zskk.model.Doctors;
+import com.zskk.model.Exams;
 import com.zskk.service.ThreadPoolService;
 import okhttp3.*;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.log4j.Logger;
 
 import java.io.*;
 import java.net.URLEncoder;
+import java.nio.charset.Charset;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
 public class DataTask implements ITask {
+	private static String GET_EXAM_URL = "https://risserver3.pacsonline.cn/butt/getExam";
+
+	private static String SAVE_REPORT_URL = "https://risserver3.pacsonline.cn/butt/saveReport";
+	private static CloseableHttpClient httpClient;
+	static Logger logger = Logger.getLogger(DataTask.class);
+
+	static {
+		PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+		cm.setMaxTotal(100);
+		cm.setDefaultMaxPerRoute(20);
+		cm.setDefaultMaxPerRoute(50);
+		httpClient = HttpClients.custom().setConnectionManager(cm).build();
+	}
 	private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient();
 
 	@Override
 	public void run() {
 		// TODO Auto-generated method stub
 		try {
-			List<Exams> exams = Exams.dao.use("zskk").find(
-					"SELECT * FROM pacsonline.exams where exam_status=3 and institution_id=05400001 order by createdAt desc limit 30");
+			//List<Exams> exams = Exams.dao.use("zskk").find("SELECT * FROM pacsonline.exams where exam_status=3 and institution_id=05400001 order by createdAt desc limit 30");
+			JSONArray examList = getExamList("05400001", 30);
+			List<Exams> exams = JSONObject.parseArray(examList.toJSONString(), Exams.class);
 			for (Exams exams2 : exams) {
 				try {
-					 Studies studies = Studies.dao.use("zskk").findById(exams2.getStudyId());
+					// Studies studies = Studies.dao.use("zskk").findById(exams2.getStudyId());
 					Record record = Db.use("connected").findFirst("select * from REPORTINFO where STUDYUID=?",studies.getStudyuid());
 					if (record == null) {
 						continue;
 					}
-					Report report = new Report().use("zskk");
+				/*	Report report = new Report().use("zskk");
 					report.setId(creatId());
-					report.setReportDatetime(parseStringToDate(record.getStr("REPORTDATE")));
+					report.setReportDatetime(parseStringToDate(record.getStr("REPORTDATE")));*/
 					if (record.getStr("IMPRESSION") == null || record.getStr("DESCRIPTION") == null
 							|| record.getStr("IMPRESSION").isBlank() || record.getStr("DESCRIPTION").isBlank()) {
 						continue;
 					}
-					report.setImpression(record.getStr("IMPRESSION"));
+				/*	report.setImpression(record.getStr("IMPRESSION"));
 					report.setDescription(record.getStr("DESCRIPTION"));
 					report.setExamId(exams2.getId());
 					report.setCreatedAt(new Date());
@@ -57,7 +83,7 @@ public class DataTask implements ITask {
 					exams2.setExamStatus(9);
 					exams2.setApplicationDepartment(record.getStr("DEPARTMENT"));
 					exams2.setApplicationDoctor(record.getStr("CLINICALDOCTOR"));
-					exams2.update();
+					exams2.update();*/
 					// 传云医康 数据
 					Map<String, String> data = new HashMap<String, String>();
 					// 获取data数据
@@ -230,6 +256,61 @@ public class DataTask implements ITask {
 		return String.valueOf(sdf.parse(data).getTime() / 1000);
 	}
 
+	/**
+	 * 获取未出报告的检查列表
+	 * @param instutionId
+	 * @param number
+	 */
+	public static JSONArray getExamList(String instutionId, Integer number) {
+		Map <String,String> map = new HashMap<String,String>();
+		map.put("institution_id", instutionId);
+		map.put("num", number.toString());
+		String content = posturl(GET_EXAM_URL, JSON.toJSONString(map));
+		JSONObject jsonObject = JSON.parseObject(content);
+		if (!jsonObject.getString("msg").equals("success")) {
+			return null;
+		}
+		JSONArray jsonArray = JSON.parseArray(jsonObject.getString("data"));
+		return jsonArray;
+
+	}
+	public static String posturl(String url, String jsonString) {
+		CloseableHttpResponse response = null;
+		BufferedReader in = null;
+		String result = "";
+		try {
+			HttpPost httpPost = new HttpPost(url);
+			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
+			httpPost.setConfig(requestConfig);
+			httpPost.setConfig(requestConfig);
+			httpPost.addHeader("Content-type", "application/json; charset=utf-8");
+			httpPost.setHeader("Accept", "application/json");
+			httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8")));
+			response = httpClient.execute(httpPost);
+			in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
+			StringBuffer sb = new StringBuffer("");
+			String line = "";
+			String NL = System.getProperty("line.separator");
+			while ((line = in.readLine()) != null) {
+				sb.append(line + NL);
+			}
+			in.close();
+			result = sb.toString();
+			//logger.error(result);
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			try {
+				if (null != response) {
+					response.close();
+				}
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return result;
+	}
+
 	@Override
 	public void stop() {
 		// TODO Auto-generated method stub