ReCMoveTask.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.zskk.task;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. import java.util.List;
  5. import com.jfinal.plugin.activerecord.Db;
  6. import com.jfinal.plugin.activerecord.Record;
  7. import com.jfinal.plugin.cron4j.ITask;
  8. import com.zskk.service.ServiceFactory;
  9. import com.zskk.service.ThreadPoolService;
  10. import com.zskk.tools.ExecUtil;
  11. public class ReCMoveTask implements ITask {
  12. @Override
  13. public void run() {
  14. // TODO Auto-generated method stub
  15. List<Record> count = Db.use("local").find("select * from study where status =4");
  16. //同时下载的队列
  17. Integer flag = count.size();
  18. if (flag >= 5) {
  19. return;
  20. }
  21. //2小时到2天内的检查重新获取
  22. List<Record> studyidfinds = Db.use("local").find("select * from study where status =3 and createAt between ? and ? and (modalities like '%CT%' or modalities like '%MR%' or modalities like '%DX%') order by createAt asc", parseStringToDateTo(), parseStringToDateFrom());
  23. if (studyidfinds == null) {
  24. return;
  25. }
  26. for (Record studyidfind : studyidfinds) {
  27. flag++;
  28. if (flag <= 5) {
  29. //状态4:下载中
  30. studyidfind.set("status", 4);
  31. studyidfind.set("updateAt", parseStringToDateTime());
  32. Db.use("local").update("study", studyidfind);
  33. String execCmd = ExecUtil.execCmd("/zskk_system/other/cmove.sh " + studyidfind.getStr("studyuid"));
  34. if (execCmd.contains("Connection refused")) {
  35. // 状态2:错误
  36. studyidfind.set("status", 2);
  37. studyidfind.set("updateAt", parseStringToDateTime());
  38. Db.use("local").update("study", studyidfind);
  39. } else {
  40. // 状态5:重新下载完成
  41. studyidfind.set("status", 5);
  42. studyidfind.set("updateAt", parseStringToDateTime());
  43. Db.use("local").update("study", studyidfind);
  44. }
  45. }
  46. }
  47. }
  48. @Override
  49. public void stop() {
  50. // TODO Auto-generated method stub
  51. }
  52. /**
  53. * 日期字符串格式转换
  54. *
  55. * @param dateStr
  56. * @return
  57. */
  58. private String parseStringToDateFrom() {
  59. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  60. Date date = new Date();
  61. long dInteger = date.getTime() - 5400000;
  62. String daString = sdf.format(new Date(dInteger));
  63. return daString;
  64. }
  65. /**
  66. * 日期字符串格式转换
  67. *
  68. * @param dateStr
  69. * @return
  70. */
  71. private String parseStringToDateTo() {
  72. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  73. Date date = new Date();
  74. long dInteger = date.getTime() - 172800000;
  75. String daString = sdf.format(new Date(dInteger));
  76. return daString;
  77. }
  78. /**
  79. * 日期字符串格式转换年月日时分秒
  80. *
  81. * @param dateStr
  82. * @return
  83. */
  84. private String parseStringToDateTime() {
  85. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  86. Date date = new Date();
  87. String daString = sdf.format(date);
  88. return daString;
  89. }
  90. }