package com.zskk.task; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import com.jfinal.plugin.cron4j.ITask; import com.zskk.tools.XmlHelper; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zskk.service.DataService; import com.zskk.service.ServiceFactory; import com.zskk.service.ThreadPoolService; public class DataTask implements ITask { @Override public void run() { // TODO Auto-generated method stub DataService dService = ServiceFactory.getService(DataService.class); JSONArray jsonArray = dService.getExamList(30); for (Object object : jsonArray) { JSONObject jsonObject = JSON.parseObject(object.toString()); String url = "http://192.168.2.41/WebQuery.asmx/Query"; OkHttpClient okHttpClient = new OkHttpClient(); StringBuilder sb = new StringBuilder(); sb.append("input="); sb.append(jsonObject.getString("studyuid")); RequestBody body = RequestBody.create(sb.toString(), MediaType.get("application/x-www-form-urlencoded")); Request request = new Request.Builder().url(url).post(body).build(); try (Response response = okHttpClient.newCall(request).execute()) { String contentString = response.body().string(); XmlHelper xmlHelperStr = XmlHelper.of(contentString); String content = xmlHelperStr.getString("//string"); XmlHelper xmlHelper = XmlHelper.of(content); String patientname = xmlHelper.getString("//patientname"); if (patientname == null && patientname == null) { continue; } String department = xmlHelper.getString("//department"); String clinicaldoctor = xmlHelper.getString("//clinicaldoctor"); String reportdate = xmlHelper.getString("//reportdate"); String description = xmlHelper.getString("//description"); String impression = xmlHelper.getString("//impression"); String reportdoctor = xmlHelper.getString("//reportdoctor"); String reviewdoctor = xmlHelper.getString("//reviewdoctor"); String phone = xmlHelper.getString("//phone "); String idcard = xmlHelper.getString("//idcard "); Map params = new HashMap<>(); params.put("exam_id", jsonObject.getString("id")); // 报告医生姓名 params.put("report_doctor_name", reportdoctor); // 报告时间 params.put("report_datetime", parseStringToDate(reportdate).toString()); // 审核医生姓名 params.put("review_doctor_name", reviewdoctor); // 审核时间 params.put("review_datetime", parseStringToDate(reportdate).toString()); // 确认医生姓名 params.put("confirm_doctor_name", reviewdoctor); // 确认时间 params.put("confirm_datetime", parseStringToDate(reportdate).toString()); // 意见建议 params.put("impression", impression); // 影像所见 params.put("description", description); // exams表 // 申请科室 params.put("application_department", department); // 申请医生 params.put("application_doctor", clinicaldoctor); // 临床诊断 params.put("clin_diag", ""); // 症状 params.put("clin_symp", ""); // patient_infos表 // 患者姓名 params.put("name", patientname); // 患者手机号 params.put("phone", phone); // 患者身份证号 params.put("card_num", idcard); params.put("report_result", "0"); ThreadPoolService tService = ServiceFactory.getService(ThreadPoolService.class); tService.execute(() -> { dService.saveReport(params); }); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } @Override public void stop() { // TODO Auto-generated method stub } private Date parseStringToDate(String dateStr) { if (dateStr == null) { return new Date(); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); Date date = null; try { date = sdf.parse(dateStr); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return date; } }