CMoveTask.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.zskk.task;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import java.util.List;
  9. import com.jfinal.plugin.activerecord.Db;
  10. import com.jfinal.plugin.activerecord.Record;
  11. import com.jfinal.plugin.cron4j.ITask;
  12. import com.zskk.service.ServiceFactory;
  13. import com.zskk.service.ThreadPoolService;
  14. import com.zskk.tools.ExecUtil;
  15. import okhttp3.OkHttpClient;
  16. import okhttp3.Request;
  17. import okhttp3.Response;
  18. public class CMoveTask implements ITask {
  19. private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient();
  20. @Override
  21. public void run() {
  22. // TODO Auto-generated method stub
  23. Record record = Db.use("local").findFirst("select * from study where status=1 order by createAt asc");
  24. if (record == null) {
  25. return;
  26. }
  27. Date creatDate = record.getDate("createAt");
  28. Date nowDate = new Date();
  29. Long due = nowDate.getTime() - creatDate.getTime();
  30. //延时60min
  31. if (due < 3600000) {
  32. return;
  33. }
  34. record.set("status", 2);
  35. Db.use("local").update("study", record);
  36. List<Record> recordList = Db.use("connected").find("select * from imageinfo where AccessionNumber=?",record.getStr("studyuid"));
  37. for (Record record2 : recordList) {
  38. Request request = new Request.Builder()
  39. .url(record2.getStr("IMAGE_PATH"))
  40. .build();
  41. String fileName = record2.getStr("SOP_INSTANCE_UID");
  42. try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
  43. if (!response.isSuccessful())
  44. throw new IOException("Unexpected code " + response);
  45. String dirName = "/home/zskk/DICOM_URL";
  46. File file = new File(dirName);
  47. if (!file.exists()) {
  48. file.mkdir();
  49. }
  50. if (response != null) {
  51. InputStream is = response.body().byteStream();
  52. FileOutputStream fos = new FileOutputStream(new File(dirName + "/" + fileName));
  53. int len = 0;
  54. byte[] buffer = new byte[2048];
  55. while (-1 != (len = is.read(buffer))) {
  56. fos.write(buffer, 0, len);
  57. }
  58. fos.flush();
  59. fos.close();
  60. is.close();
  61. File filen2 = new File(dirName + "/" + fileName);
  62. File filen = new File(dirName + "/" + fileName+".dcm");
  63. filen2.renameTo(filen);
  64. }
  65. } catch (IOException e) {
  66. // TODO Auto-generated catch block
  67. e.printStackTrace();
  68. }
  69. }
  70. record.set("imageNum", recordList.size());
  71. record.set("status", 3);
  72. Db.use("local").update("study", record);
  73. }
  74. @Override
  75. public void stop() {
  76. // TODO Auto-generated method stub
  77. }
  78. /**
  79. * 日期字符串格式转换
  80. *
  81. * @param dateStr
  82. * @return
  83. */
  84. private String parseStringToDate() {
  85. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  86. Date date = new Date();
  87. long dInteger = date.getTime() - 300000;
  88. String daString = sdf.format(new Date(dInteger));
  89. return daString;
  90. }
  91. /**
  92. * 日期字符串格式转换年月日时分秒
  93. *
  94. * @param dateStr
  95. * @return
  96. */
  97. private String parseStringToDateTime() {
  98. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  99. Date date = new Date();
  100. String daString = sdf.format(date);
  101. return daString;
  102. }
  103. }