package com.zskk.control; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.regex.Matcher; import org.apache.commons.io.IOUtils; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.message.BasicNameValuePair; import com.alibaba.fastjson.JSON; import com.jfinal.core.Controller; import com.jfinal.kit.HttpKit; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.zskk.model.Doctors; import com.zskk.model.Exams; import com.zskk.model.PatientInfos; import com.zskk.model.Report; import com.zskk.model.Studies; import com.zskk.tools.XmlHelper; public class ViewController extends Controller { private static final PoolingHttpClientConnectionManager POOL_CM = new PoolingHttpClientConnectionManager(); private static final String CAHR_CODE = "UTF-8"; /** * 在被连接数据库执行sql语句 */ public void executeSql() { try { List d = Db.use("connected").find("select * from (select * from reportinfo order by REPORTDATE desc) where rownum <= 20"); this.renderJson(d); } catch (Exception e) { // TODO: handle exception this.renderText(e.toString()); } } /** * 在被连接数据库执行sql语句 */ public void test() { // Map params = new HashMap(); // params.put("studyuid", "1.2.840.1424321.23532.201804071725566372"); try { String cotentString = creatPostAndTransData("http://10.84.138.254:8080/rest/getReportByStudyuid"); renderText(cotentString); } catch (Exception e) { // TODO: handle exception this.renderText(e.toString()); } // testPost("http://10.84.138.254:8080/rest/getReportByStudyuid"); } public void executeSql2() { try { String sqlString = this.getPara("str"); List d = Db.use("connected").find(sqlString); this.renderJson(d); } catch (Exception e) { // TODO: handle exception this.renderText(e.toString()); } } public void testTask() { List exams; try { exams = Exams.dao.use("zskk").find("SELECT * FROM pacsonline.exams where exam_status=3 and institution_id=73090006 order by createdAt desc limit 10"); for (Exams exams2 : exams) { Studies studies = Studies.dao.use("zskk").findById(exams2.getStudyId()); // WeixinService wService = ServiceFactory.getService(WeixinService.class); // wService.requestWeixinQrcode(report.getId()); Map headerString = new HashMap(); headerString.put("Content-Type","text/xml"); String content = HttpKit.post("http://10.84.138.254:8080/rest/getReportByStudyuid", getXmlInfo(studies.getStudyuid()), headerString); XmlHelper xmlHelper = XmlHelper.of(content); Report report = new Report().use("zskk"); report.setId(creatId()); report.setReportDatetime(parseStringToDate(xmlHelper.getString("//ReportBean[1]/reportdate"))); if (!xmlHelper.getString("//code[1]").equals("0")) { continue; } report.setImpression(xmlHelper.getString("//ReportBean[1]/impression")); report.setDescription(xmlHelper.getString("//ReportBean[1]/description")); report.setExamId(exams2.getId()); report.setCreatedAt(new Date()); report.setReportDoctorId(getDoctorIdByName(xmlHelper.getString("//ReportBean[1]/reportdoctor"))); report.setReviewDoctorId(getDoctorIdByName(xmlHelper.getString("//ReportBean[1]/reviewdoctor"))); report.setReviewDatetime(parseStringToDate(xmlHelper.getString("//ReportBean[1]/reportdate"))); report.setConfirmDoctorId(getDoctorIdByName(xmlHelper.getString("//ReportBean[1]/reviewdoctor"))); report.setConfirmDatetime(parseStringToDate(xmlHelper.getString("//ReportBean[1]/reportdate"))); report.save(); PatientInfos patientInfos = PatientInfos.dao.use("zskk").findById(exams2.getPatientId()); patientInfos.setName(xmlHelper.getString("//ReportBean[1]/patientname")); patientInfos.setPhone(xmlHelper.getString("//ReportBean[1]/phone")); // patientInfos.setCardNum(record.getStr("IDCARD")); patientInfos.update(); exams2.setExamStatus(9); exams2.update(); } this.renderJson(exams); } catch (Exception e) { // TODO: handle exception this.renderText(e.toString()); } } private String getXmlInfo(String studyuid) { StringBuilder sb = new StringBuilder(); sb.append(""); sb.append(""); sb.append(studyuid); sb.append(""); sb.append(""); return sb.toString(); } private Date parseStringToDate(String dateStr) { if (dateStr == null) { return new Date(); } SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = sdf.parse(dateStr); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return date; } private String creatId() { UUID id = UUID.randomUUID(); String[] idd =id.toString().split("-"); return idd[0]+idd[1]+idd[2]; } private String getDoctorIdByName(String name) { if (name == null) { return "1"; } Doctors doctors = Doctors.dao.use("zskk").findFirst("SELECT * FROM doctors where instr(?,realname) and institution_id=73090001",name); if (doctors == null) { return "1"; } return doctors.getId(); } private Date aaa(String timestr) { if (timestr == null) { return new Date(); } SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = sdf.parse(timestr); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return date; } private String doPost(String url,Map params){ StringBuilder apiLog = new StringBuilder(); apiLog.append(url).append("\t").append("params:").append(JSON.toJSONString(params)); CloseableHttpClient client = HttpClients.custom().setConnectionManager(POOL_CM).build(); String content = null; try{ HttpPost post = new HttpPost(url); if (params != null){ List list = new ArrayList(); for(Map.Entry entry: params.entrySet()){ list.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } post.setEntity(new UrlEncodedFormEntity(list, "UTF-8")); } post.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); CloseableHttpResponse response = null; try{ response = client.execute(post); int code = response.getStatusLine().getStatusCode(); if (code == 200){ content = IOUtils.toString(response.getEntity().getContent(), CAHR_CODE); }else{ content = "{\"code\":" + code + "}"; } }finally{ if (response != null){ response.close(); } } }catch(Exception e){ } return content; } public String creatPostAndTransData(String urlString) { Map headerString = new HashMap(); headerString.put("Content-Type","text/xml"); String respoString = HttpKit.post(urlString, getXmlInfo(), headerString); return respoString; } private String getXmlInfo() { StringBuilder sb = new StringBuilder(); sb.append(""); sb.append("1.2.840.1424321.23532.201804071725566372"); sb.append(""); return sb.toString(); } }