|
@@ -0,0 +1,99 @@
|
|
|
+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> record = Db.use("connectedtemp").find("select * from study where status=3 order by createAt desc limit 10");
|
|
|
+ if (record == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (Record record3 : record) {
|
|
|
+ List<Record> recordList = Db.use("connected").find("select * from v_webpacs_image where STUDYID=?",record3.getStr("studyid"));
|
|
|
+ if (recordList.size()<=record3.getInt("imageNum")) {
|
|
|
+ continue;
|
|
|
+ }else {
|
|
|
+ for (Record record2 : recordList) {
|
|
|
+ Request request = new Request.Builder()
|
|
|
+ .url("http://"+record2.getStr("FILEPATH").replace("\\\\", "/"))
|
|
|
+ .build();
|
|
|
+
|
|
|
+ String fileName = record2.getStr("IMAGE_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();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ record3.set("status", 5);
|
|
|
+ Db.use("connectedtemp").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()-65000;
|
|
|
+ String daString = sdf.format(new Date(dInteger));
|
|
|
+ return daString;
|
|
|
+
|
|
|
+ }
|
|
|
+}
|