فهرست منبع

修复问题,新增重新获取定时任务

刘韬 3 سال پیش
والد
کامیت
43618ac476

+ 6 - 0
DataFusion/src/com/zskk/config/ZskkConfig.java

@@ -20,6 +20,7 @@ import com.zskk.task.CFindTask;
 import com.zskk.task.CMoveTask;
 import com.zskk.task.DataTask;
 import com.zskk.task.InfoTask;
+import com.zskk.task.ReCMoveTask;
 import com.zskk.task.ReviewTask;
 import com.zskk.task.UpdateTask;
 
@@ -117,6 +118,11 @@ public class ZskkConfig extends JFinalConfig {
 		Cron4jPlugin upData = new Cron4jPlugin();
 		upData.addTask("*/6 * * * *", new ReviewTask());
 		me.add(upData);
+		
+		//同步报告
+		Cron4jPlugin reData = new Cron4jPlugin();
+		reData.addTask("*/30 * * * *", new ReCMoveTask());
+		me.add(reData);
 	}
 
 	@Override

+ 3 - 3
DataFusion/src/com/zskk/task/CMoveTask.java

@@ -19,11 +19,11 @@ public class CMoveTask implements ITask {
 		List<Record> count = Db.use("local").find("select * from study where status =4");
 		//同时下载的队列
 		Integer flag = count.size();
-		if (flag >= 10) {
+		if (flag >= 8) {
 			return;
 		}
 		//延迟10分钟获取影像,并且查找状态为待CMOVE和错误状态的检查
-		List<Record> studyidfinds = Db.use("local").find("select * from study where status =1 or status =2 and createAt<? order by createAt asc limit 8",parseStringToDate());
+		List<Record> studyidfinds = Db.use("local").find("select * from study where status =1 or status =2 and createAt<? order by createAt asc limit 6",parseStringToDate());
 		if (studyidfinds == null) {
 			return;
 		}
@@ -70,7 +70,7 @@ public class CMoveTask implements ITask {
 	private String parseStringToDate() {
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 		Date date = new Date();
-		long dInteger = date.getTime() - 600000;
+		long dInteger = date.getTime() - 300000;
 		String daString = sdf.format(new Date(dInteger));
 		return daString;
 

+ 79 - 0
DataFusion/src/com/zskk/task/ReCMoveTask.java

@@ -0,0 +1,79 @@
+package com.zskk.task;
+
+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;
+
+public class ReCMoveTask implements ITask {
+
+	@Override
+	public void run() {
+		// TODO Auto-generated method stub
+		List<Record> count = Db.use("local").find("select * from study where status =4");
+		//同时下载的队列
+		Integer flag = count.size();
+		if (flag >= 8) {
+			return;
+		}
+		//延迟10分钟获取影像,并且查找状态为待CMOVE和错误状态的检查
+		List<Record> studyidfinds = Db.use("local").find("select * from study where status =3 and modalities='CT' and modalities='MR' and createAt<? order by createAt asc",parseStringToDate());
+		if (studyidfinds == null) {
+			return;
+		}
+		for (Record studyidfind : studyidfinds) {
+			flag++;
+			if (flag > 10) {
+				return;
+			}
+			//状态4:下载中
+			studyidfind.set("status", 4);
+			Db.use("local").update("study", studyidfind);
+			
+			ThreadPoolService tService = ServiceFactory.getService(ThreadPoolService.class);
+			tService.execute(() -> {
+				String execCmd = ExecUtil.execCmd("/zskk_system/other/cmove.sh " + studyidfind.getStr("studyuid"));
+				if (execCmd.contains("Connection refused")) {
+					//状态2:错误
+					studyidfind.set("status", 2);
+					Db.use("local").update("study", studyidfind);
+				}else {
+					//状态5:重新下载完成
+					studyidfind.set("status", 5);
+					Db.use("local").update("study", studyidfind);
+				}
+				
+			});	
+			
+		}
+		
+	}
+
+	@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() - 7200000;
+		String daString = sdf.format(new Date(dInteger));
+		return daString;
+
+	}
+
+}

+ 2 - 2
DataFusion/src/com/zskk/task/UpdateTask.java

@@ -55,8 +55,8 @@ public class UpdateTask implements ITask {
 									studyuidString = xmlHelper.getString(dicomAttributeList.item(j), "Value");
 									continue;
 								}
-								// 获取检查类型
-								if (attributeMap.item(k).getNodeValue().equals("00080061")) {
+								// 获取检查类型00080060or00080061
+								if (attributeMap.item(k).getNodeValue().equals("00080060")) {
 									modalitiesString = xmlHelper.getString(dicomAttributeList.item(j), "Value");
 								}
 							}