package com.zskk.task; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.cron4j.ITask; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class CheckTask implements ITask { private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient(); @Override public void run() { // TODO Auto-generated method stub List record = Db.use("connectedtemp").find("select * from study where status>=3 and imageNum is not null order by createAt desc limit 15"); if (record == null) { return; } for (Record record3 : record) { int i = record3.getInt("imageNum"); List recordList = Db.use("connected").find("select * from tjpacs.V_ZSKK_WEBPACS_IMAGE where STUDYID=?",record3.getStr("studyid")); if (recordList.size()<=i) { continue; }else { record3.set("status", 4); Db.use("connectedtemp").update("study", record3); for (Record record2 : recordList) { Request request = new Request.Builder() .url(record2.getStr("HTTP_URL")) .build(); String fileName = record2.getStr("INSUID"); try (Response response = OKHTTP_CLIENT.newCall(request).execute()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); String dirName = "/home/zskk/桌面/DICOM_URL"; File file = new File(dirName); if (!file.exists()) { file.mkdir(); } if (response != null) { InputStream is = response.body().byteStream(); FileOutputStream fos = new FileOutputStream(new File(dirName + "/" + fileName)); int len = 0; byte[] buffer = new byte[2048]; while (-1 != (len = is.read(buffer))) { fos.write(buffer, 0, len); } fos.flush(); fos.close(); is.close(); File filen2 = new File(dirName + "/" + fileName); File filen = new File(dirName + "/" + fileName+".dcm"); filen2.renameTo(filen); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } record3.set("imageNum", recordList.size()); record3.set("status", 5); Db.use("connectedtemp").update("study", record3); } } @Override public void stop() { // TODO Auto-generated method stub } /** * 日期字符串格式转换 * @param dateStr * @return */ private String parseStringToDate() { SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); long dInteger =date.getTime()-65000; String daString = sdf.format(new Date(dInteger)); return daString; } }