CheckTask.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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.ParseException;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.List;
  10. import com.jfinal.plugin.activerecord.Db;
  11. import com.jfinal.plugin.activerecord.Record;
  12. import com.jfinal.plugin.cron4j.ITask;
  13. import okhttp3.OkHttpClient;
  14. import okhttp3.Request;
  15. import okhttp3.Response;
  16. public class CheckTask implements ITask {
  17. private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient();
  18. @Override
  19. public void run() {
  20. // TODO Auto-generated method stub
  21. List<Record> record = Db.use("connectedtemp").find("select * from study where status>=3 and imageNum is not null order by createAt desc limit 15");
  22. if (record == null) {
  23. return;
  24. }
  25. for (Record record3 : record) {
  26. int i = record3.getInt("imageNum");
  27. List<Record> recordList = Db.use("connected").find("select * from tjpacs.V_ZSKK_WEBPACS_IMAGE where STUDYID=?",record3.getStr("studyid"));
  28. if (recordList.size()<=i) {
  29. continue;
  30. }else {
  31. record3.set("status", 4);
  32. Db.use("connectedtemp").update("study", record3);
  33. for (Record record2 : recordList) {
  34. Request request = new Request.Builder()
  35. .url(record2.getStr("HTTP_URL"))
  36. .build();
  37. String fileName = record2.getStr("INSUID");
  38. try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
  39. if (!response.isSuccessful())
  40. throw new IOException("Unexpected code " + response);
  41. String dirName = "/home/zskk/桌面/DICOM_URL";
  42. File file = new File(dirName);
  43. if (!file.exists()) {
  44. file.mkdir();
  45. }
  46. if (response != null) {
  47. InputStream is = response.body().byteStream();
  48. FileOutputStream fos = new FileOutputStream(new File(dirName + "/" + fileName));
  49. int len = 0;
  50. byte[] buffer = new byte[2048];
  51. while (-1 != (len = is.read(buffer))) {
  52. fos.write(buffer, 0, len);
  53. }
  54. fos.flush();
  55. fos.close();
  56. is.close();
  57. File filen2 = new File(dirName + "/" + fileName);
  58. File filen = new File(dirName + "/" + fileName+".dcm");
  59. filen2.renameTo(filen);
  60. }
  61. } catch (IOException e) {
  62. // TODO Auto-generated catch block
  63. e.printStackTrace();
  64. }
  65. }
  66. }
  67. record3.set("imageNum", recordList.size());
  68. record3.set("status", 5);
  69. Db.use("connectedtemp").update("study", record3);
  70. }
  71. }
  72. @Override
  73. public void stop() {
  74. // TODO Auto-generated method stub
  75. }
  76. /**
  77. * 日期字符串格式转换
  78. * @param dateStr
  79. * @return
  80. */
  81. private String parseStringToDate() {
  82. SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  83. Date date = new Date();
  84. long dInteger =date.getTime()-65000;
  85. String daString = sdf.format(new Date(dInteger));
  86. return daString;
  87. }
  88. }