package com.zskk.task; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; 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 com.zskk.service.ServiceFactory; import com.zskk.service.ThreadPoolService; import com.zskk.tools.ExecUtil; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class CMoveTask implements ITask { private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient(); @Override public void run() { // TODO Auto-generated method stub Record record = Db.use("local").findFirst("select * from study where status=1 order by createAt asc"); if (record == null) { return; } Date creatDate = record.getDate("createAt"); Date nowDate = new Date(); Long due = nowDate.getTime() - creatDate.getTime(); //延时60min if (due < 3600000) { return; } record.set("status", 2); Db.use("local").update("study", record); List recordList = Db.use("connected").find("select * from imageinfo where AccessionNumber=?",record.getStr("studyuid")); for (Record record2 : recordList) { Request request = new Request.Builder() .url(record2.getStr("IMAGE_PATH")) .build(); String fileName = record2.getStr("SOP_INSTANCE_UID"); 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(); } } record.set("imageNum", recordList.size()); record.set("status", 3); Db.use("local").update("study", record); } @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() - 300000; String daString = sdf.format(new Date(dInteger)); return daString; } /** * 日期字符串格式转换年月日时分秒 * * @param dateStr * @return */ private String parseStringToDateTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String daString = sdf.format(date); return daString; } }