fuyu %!s(int64=6) %!d(string=hai) anos
pai
achega
ec8b970a15
Modificáronse 28 ficheiros con 410 adicións e 70 borrados
  1. 13 0
      dicom_monitor/logs/2018-11-13/sys-2018-11-13.0.log
  2. 5 0
      dicom_monitor/logs/2018-11-26/sys-2018-11-26.0.log
  3. 21 9
      dicom_monitor/logs/sys.log
  4. 2 1
      dicom_monitor/src/main/java/com/zskk/dicom/WebStarts.java
  5. 1 1
      dicom_monitor/src/main/java/com/zskk/dicom/config/NetCodeConfig.java
  6. 3 3
      dicom_monitor/src/main/java/com/zskk/dicom/config/OSSConfig.java
  7. 1 1
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/config/Configs.java
  8. 28 1
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/monitors/FileChangeProc.java
  9. 1 1
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/monitors/InitMonitor.java
  10. 3 0
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/monitors/WatchDir.java
  11. 52 14
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/schedules/StatRunner.java
  12. 51 0
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/CurrentUploadRunner.java
  13. 1 1
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/FileMover.java
  14. 14 9
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/FileUploader.java
  15. 44 0
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/HistoryFile2UploadQuenu.java
  16. 54 0
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/OldUploadRunner.java
  17. 69 0
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/RemoveQueue.java
  18. 16 4
      dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/UploadsQueue.java
  19. BIN=BIN
      dicom_monitor/src/main/java/com/zskk/dicom/oss/OSSFileAndCallbackHleper.java
  20. 3 3
      dicom_monitor/src/main/resources/project.properties
  21. 1 1
      dicom_monitor/target/maven-archiver/pom.properties
  22. 19 17
      dicom_monitor/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  23. 4 0
      dicom_monitor/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  24. 3 3
      dicom_monitor/target/surefire-reports/TEST-dicom_monitor.OSSTest.xml
  25. 1 1
      dicom_monitor/target/surefire-reports/dicom_monitor.OSSTest.txt
  26. BIN=BIN
      dicom_monitor/target/zskk-dicom-monitor-jar-with-dependencies.jar
  27. BIN=BIN
      dicom_monitor/target/zskk-dicom-monitor.jar
  28. BIN=BIN
      dicom_monitor/target/zskk-dicom-monitor.jar.original

+ 13 - 0
dicom_monitor/logs/2018-11-13/sys-2018-11-13.0.log

@@ -0,0 +1,13 @@
+Dicom dir monitor...
+--------------------------------------------------
+Monitoring directory:D:\testmr
+--------------------------------------------------
+
+error:
+OSS回调失败:md504731d593a355462060e7382d6b470d1返回结果code :1002
+msg:阿里云OSS回调url已存在
+error:null
+error:
+OSS回调失败:md504731d593a355462060e7382d6b470d1返回结果code :1002
+msg:阿里云OSS回调url已存在
+error:null

+ 5 - 0
dicom_monitor/logs/2018-11-26/sys-2018-11-26.0.log

@@ -0,0 +1,5 @@
+Dicom dir monitor...
+--------------------------------------------------
+Monitoring directory:/Users/fuyu/Desktop/space
+--------------------------------------------------
+

+ 21 - 9
dicom_monitor/logs/sys.log

@@ -1,13 +1,25 @@
 Dicom dir monitor...
 --------------------------------------------------
-Monitoring directory:D:\testmr
+Monitoring directory:/Users/fuyu/Desktop/1
+--------------------------------------------------
+
+Dicom dir monitor...
+--------------------------------------------------
+Monitoring directory:/Users/fuyu/Desktop/1
+--------------------------------------------------
+
+Dicom dir monitor...
+--------------------------------------------------
+Monitoring directory:/Users/fuyu/Desktop/1
+--------------------------------------------------
+
+Dicom dir monitor...
+--------------------------------------------------
+Monitoring directory:/Users/fuyu/Desktop/1
+--------------------------------------------------
+
+Dicom dir monitor...
+--------------------------------------------------
+Monitoring directory:/Users/fuyu/Desktop/1
 --------------------------------------------------
 
-error:
-OSS回调失败:md504731d593a355462060e7382d6b470d1返回结果code :1002
-msg:阿里云OSS回调url已存在
-error:null
-error:
-OSS回调失败:md504731d593a355462060e7382d6b470d1返回结果code :1002
-msg:阿里云OSS回调url已存在
-error:null

+ 2 - 1
dicom_monitor/src/main/java/com/zskk/dicom/WebStarts.java

@@ -32,7 +32,8 @@ public class WebStarts {
 		Configs.sysLog.info(sb.toString());
 		springApplication.run(args);
 		// SpringApplication.run(WebStarts.class, args);
-		StatRunner.start();
+
 		InitMonitor.start();
+		StatRunner.start();
 	}
 }

+ 1 - 1
dicom_monitor/src/main/java/com/zskk/dicom/config/NetCodeConfig.java

@@ -8,7 +8,7 @@ public class NetCodeConfig {
 	private static String FILE_PATH_IS_NULL_CODE = "1001";
 	private static String FILE_PATH_IS_NULL_MSG = "文件路径为空";
 	private static String FILE_IS_NOT_FOUND_CODE = "1002";
-	private static String FILE_IS_NOT_FOUND_MSG = "文件路径找到";
+	private static String FILE_IS_NOT_FOUND_MSG = "文件路径找到";
 	private static String FILE_IS_NOT_FILE_CODE = "1003";
 	private static String FILE_IS_NOT_FILE_MSG = "传入的路径不是文件路径";
 	private static String FILE_RUNTIME_CODE = "2001";

+ 3 - 3
dicom_monitor/src/main/java/com/zskk/dicom/config/OSSConfig.java

@@ -12,8 +12,8 @@ public class OSSConfig {
 	public static final String ALIYUN_OSS_CALLBACK_URL = "http://api.aliyuoss.callback.pacsonline.cn/oss_callback";
 	public static final String BASE_ALIYUN_OSS_URL = ".oss-cn-beijing.aliyuncs.com/";
 
-	public static String generateBodyStr(String md5 , long size) {
-		String url = Configs.ossScheme + "://" + Configs.ossBucketName + BASE_ALIYUN_OSS_URL + md5;
-		return "{\\\"hospital_id\\\":\\\"" + Configs.hospitalId +"\\\",\\\"region\\\":\\\"" + Configs.ossRegion + "\\\",\\\"md5\\\":\\\"" + md5 + "\\\",\\\"url\\\":\\\"" + url + "\\\",\\\"size\\\":" + size + "}";
+	public static String generateBodyStr(String fileName , long size) {
+		String url = Configs.ossScheme + "://" + Configs.ossBucketName + BASE_ALIYUN_OSS_URL + fileName;
+		return "{\\\"hospital_id\\\":\\\"" + Configs.hospitalId +"\\\",\\\"region\\\":\\\"" + Configs.ossRegion + "\\\",\\\"md5\\\":\\\"" + fileName + "\\\",\\\"url\\\":\\\"" + url + "\\\",\\\"size\\\":" + size + "}";
 	}
 }

+ 1 - 1
dicom_monitor/src/main/java/com/zskk/dicom/monitor/config/Configs.java

@@ -77,7 +77,7 @@ public class Configs {
 	/**
 	 * 系统日志(包含系统、异常、业务处理等)
 	 */
-	public static LogEnginer sysLog = new LogEnginer("sys");
+	public static LogEnginer sysLog = new LogEnginer("dicom_upload");
 	/**
 	 * 阿里云OSS region
 	 */

+ 28 - 1
dicom_monitor/src/main/java/com/zskk/dicom/monitor/monitors/FileChangeProc.java

@@ -1,6 +1,8 @@
 package com.zskk.dicom.monitor.monitors;
 
 import java.io.File;
+import java.util.Timer;
+import java.util.TimerTask;
 
 import com.zskk.dicom.monitor.config.Configs;
 import com.zskk.dicom.monitor.report.ErrReporter;
@@ -35,8 +37,21 @@ public class FileChangeProc {
 								return;
 							}
 							String msg = "File create \t" + file.getAbsolutePath();
+//							if(file.renameTo(file)) {
+//								msg += "\r\n add to queue";
+							String absolutePath = file.getAbsolutePath();
+							if(absolutePath.endsWith("dcm")) {
+								Timer timer = new Timer();
+								timer.schedule(new TimerTask() {
+									
+									@Override
+									public void run() {
+										// TODO Auto-generated method stub
+										UploadsQueue.addCurrent(new File(absolutePath));
+									}
+								}, 1000);
+							}
 							Configs.sysLog.info(msg);
-							UploadsQueue.add(file);
 						}
 
 						@Override
@@ -48,6 +63,18 @@ public class FileChangeProc {
 						@Override
 						public void modify(File file) {
 							String msg = "File update \t" + file.getAbsolutePath();
+							String absolutePath = file.getAbsolutePath();
+							if(absolutePath.endsWith("dcm")) {
+								Timer timer = new Timer();
+								timer.schedule(new TimerTask() {
+									
+									@Override
+									public void run() {
+										// TODO Auto-generated method stub
+										UploadsQueue.addCurrent(new File(absolutePath));
+									}
+								}, 1000);
+							}
 							Configs.sysLog.info(msg);
 						}
 					});

+ 1 - 1
dicom_monitor/src/main/java/com/zskk/dicom/monitor/monitors/InitMonitor.java

@@ -17,7 +17,7 @@ public class InitMonitor {
 		// 判断备份目录是否存在
 		MonitorFileUtils.touchBackDir(monitorDir);
 		// 处理监控开启前未处理的文件
-		UploadsQueue.init();
+//		UploadsQueue.init();
 	}
 
 }

+ 3 - 0
dicom_monitor/src/main/java/com/zskk/dicom/monitor/monitors/WatchDir.java

@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import com.zskk.dicom.monitor.config.Configs;
+import com.zskk.dicom.monitor.uploader.UploadsQueue;
 import com.zskk.dicom.monitor.utils.ExceptionUtil;
 
 /**
@@ -153,6 +154,8 @@ public class WatchDir {
 				keys.remove(key);
 				// 如果待监控的目录都不存在了,就中断执行
 				if (keys.isEmpty()) {
+					String msg = "WatchDir break because keys isEmpty";
+					Configs.sysLog.info(msg);
 					break;
 				}
 			}

+ 52 - 14
dicom_monitor/src/main/java/com/zskk/dicom/monitor/schedules/StatRunner.java

@@ -5,30 +5,68 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
 import com.zskk.dicom.monitor.config.Configs;
+import com.zskk.dicom.monitor.uploader.CurrentUploadRunner;
+import com.zskk.dicom.monitor.uploader.HistoryFile2UploadQuenu;
+import com.zskk.dicom.monitor.uploader.OldUploadRunner;
 import com.zskk.dicom.monitor.uploader.UploadsQueue;
 
 public class StatRunner {
 
-	private static ExecutorService pools = null;
-
+	private static ExecutorService dirMonitorPools = null;
+	private static ExecutorService oldUploadPools = null;
+	private static ExecutorService currentUploadPools = null;
+	private static ExecutorService addHistoryFile2UploadPools = null;
 	public static void start() {
-		if (pools != null && !pools.isTerminated()) {
-			pools.shutdown();
-			while (pools.isTerminated()) {
+//		if (dirMonitorPools != null && !dirMonitorPools.isTerminated()) {
+//			dirMonitorPools.shutdown();
+//			while (dirMonitorPools.isTerminated()) {
+//				try {
+//					dirMonitorPools.awaitTermination(200, TimeUnit.MILLISECONDS);
+//				} catch (InterruptedException e) {
+//					e.printStackTrace();
+//				}
+//			}
+//		}
+		
+		Configs.sysLog.info("StatRunner.start() ...");
+		Configs.sysLog.info("Error report from:" + Configs.errReportFromEmail);
+		Configs.sysLog.info("Error report to:" + Configs.errReportToEmail);
+		dirMonitorPools = generateSinglePools(dirMonitorPools);
+		dirMonitorPools.execute(new DirMonitor());
+		// 处理监控开启前未处理的文件
+//		UploadsQueue.init();
+		addHistoryFile2UploadPools = generatePools(addHistoryFile2UploadPools, 2);
+		addHistoryFile2UploadPools.execute(new HistoryFile2UploadQuenu());
+		try {
+			TimeUnit.SECONDS.sleep(1);
+		} catch (InterruptedException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		oldUploadPools = generatePools(oldUploadPools, 2);
+		oldUploadPools.execute(new OldUploadRunner());
+		currentUploadPools = generatePools(currentUploadPools, 2);
+		currentUploadPools.execute(new CurrentUploadRunner());
+	}
+
+	public static ExecutorService generatePools(ExecutorService oldPool, int length) {
+		if (oldPool != null && !oldPool.isTerminated()) {
+			oldPool.shutdown();
+			while (oldPool.isTerminated()) {
 				try {
-					pools.awaitTermination(200, TimeUnit.MILLISECONDS);
+					oldPool.awaitTermination(200, TimeUnit.MILLISECONDS);
 				} catch (InterruptedException e) {
 					e.printStackTrace();
 				}
 			}
 		}
-		Configs.sysLog.info("StatRunner.start() ...");
-		Configs.sysLog.info("Error report from:" + Configs.errReportFromEmail);
-		Configs.sysLog.info("Error report to:" + Configs.errReportToEmail);
-		pools = Executors.newSingleThreadExecutor();
-		pools.execute(new DirMonitor());
-		// 处理监控开启前未处理的文件
-		UploadsQueue.init();
+		if(length == 1) {
+			return Executors.newSingleThreadExecutor();
+		} 
+		return Executors.newFixedThreadPool(length);
+	}
+	
+	public static ExecutorService generateSinglePools(ExecutorService oldPool) {
+		return generatePools(oldPool, 1);
 	}
-
 }

+ 51 - 0
dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/CurrentUploadRunner.java

@@ -0,0 +1,51 @@
+package com.zskk.dicom.monitor.uploader;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import com.zskk.dicom.monitor.config.Configs;
+import com.zskk.dicom.monitor.report.ErrReporter;
+import com.zskk.dicom.monitor.utils.ExceptionUtil;
+
+public class CurrentUploadRunner implements Runnable {
+
+
+	public CurrentUploadRunner() {
+	}
+
+	@Override
+	public void run() {
+		while(true) {
+			boolean flag = upload();
+			Configs.sysLog.info("--CurrentFileQueue-- System upload flag:" + flag + "\nUploadsQueue.currentFileQueue.size:" + UploadsQueue.currentFileQueue.size());
+			try {
+				if(flag) {
+					TimeUnit.MILLISECONDS.sleep(10);
+				} else {
+					TimeUnit.SECONDS.sleep(1);
+				}
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		
+	}
+	
+	public synchronized static boolean upload() {
+		boolean flag = false;
+		try {
+			// 从队列中移除已完成任务
+			if(UploadsQueue.currentFileQueue.size() > 0) {	
+				File file = UploadsQueue.currentFileQueue.remove(0);
+				FileUploader.upload(file);
+				flag = true;
+			}
+		} catch (Throwable e) {
+			ErrReporter.report(ExceptionUtil.getExceptionTxt(e));
+			e.printStackTrace();
+		}	
+		return flag;
+	}
+
+}

+ 1 - 1
dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/FileMover.java

@@ -27,7 +27,7 @@ public class FileMover implements Runnable {
 	public void run() {
 		try {
 			// 暂停一秒,等待系统处理完文件的占用
-			Thread.currentThread().sleep(1000);
+			Thread.currentThread().sleep(100);
 		} catch (InterruptedException e1) {
 			e1.printStackTrace();
 		}

+ 14 - 9
dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/FileUploader.java

@@ -24,25 +24,30 @@ import com.zskk.dicom.oss.OSSFileAndCallbackHleper;
 
 public class FileUploader {
 
-	private static ExecutorService pools = Executors.newFixedThreadPool(2);;
+	private static ExecutorService pools = Executors.newFixedThreadPool(2);
 
 	public static void upload(File file) {
 		if(file == null || !file.exists()) {
 			ErrReporter.report("file 为空 或者 file不存在");
 			return;
 		}
+		
+//		if(!file.renameTo(file)) {
+//			ErrReporter.report("file文件被占用");
+//			return;
+//		}
 		try {
 			String boundaryKey = UUID.randomUUID().toString().replaceAll("-", "").substring(8, 24);
 			String content = "\r\n----" + boundaryKey + "\r\n" + "Content-Type: application/octet-stream\r\n" + "Content-Disposition: form-data; name=\"" + renameFileName(file.getName()) + "\"; filename=\"" + renameFileName(file.getName()) + "\"\r\n" + "Content-Transfer-Encoding: binary\r\n\r\n";
 			String postUrl = "http://" + Configs.postHost + ":" + Configs.postPort + Configs.postUri;
-//			Boolean uploadResult = uploadToUrl(postUrl, boundaryKey, content, "", file);
-			Boolean uploadResult = false;
-			try {
-				uploadResult = new OSSFileAndCallbackHleper(Configs.ossEndpoint, OSSConfig.ACCESS_KEY_ID, OSSConfig.ACCESS_KEY_SECRET).upload(file);
-			} catch (Exception e) {
-				ErrReporter.report(ExceptionUtil.getExceptionTxt(e));
-				e.printStackTrace();
-			}
+			Boolean uploadResult = uploadToUrl(postUrl, boundaryKey, content, "", file);
+//			Boolean uploadResult = false;
+//			try {
+//				uploadResult = new OSSFileAndCallbackHleper(Configs.ossEndpoint, OSSConfig.ACCESS_KEY_ID, OSSConfig.ACCESS_KEY_SECRET).upload(file);
+//			} catch (Exception e) {
+//				ErrReporter.report(ExceptionUtil.getExceptionTxt(e));
+//				e.printStackTrace();
+//			}
 			if (uploadResult == true) {
 				// 创建目录
 				String targetFileStr = MonitorFileUtils.touchBackDir(file);

+ 44 - 0
dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/HistoryFile2UploadQuenu.java

@@ -0,0 +1,44 @@
+package com.zskk.dicom.monitor.uploader;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.io.FileUtils;
+
+import com.zskk.dicom.monitor.config.Configs;
+import com.zskk.dicom.monitor.report.ErrReporter;
+import com.zskk.dicom.monitor.utils.ExceptionUtil;
+import com.zskk.dicom.monitor.utils.FileHashUtil;
+import com.zskk.dicom.monitor.utils.MonitorFileUtils;
+
+public class HistoryFile2UploadQuenu implements Runnable {
+
+	@SuppressWarnings("static-access")
+	@Override
+	public void run() {
+		File dir = new File(Configs.monitorDir);
+		StringBuilder sb = new StringBuilder();
+		Iterator its = FileUtils.iterateFiles(dir, new String[] { "dcm" }, true);
+		while (its.hasNext()) {
+			File file = (File) its.next();
+			if(file.exists() && file.isFile()) {
+				UploadsQueue.add(new File(file.getAbsolutePath()));
+				sb.append(file.getAbsolutePath() + "\n");
+			}
+			try {
+				TimeUnit.MILLISECONDS.sleep(10);
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		if (sb.length() > 0) {
+			Configs.sysLog.info("System start & inits, this files added to the queue:\n" + sb.toString());
+		}
+		sb = null;
+	}
+
+}

+ 54 - 0
dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/OldUploadRunner.java

@@ -0,0 +1,54 @@
+package com.zskk.dicom.monitor.uploader;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import com.zskk.dicom.monitor.config.Configs;
+import com.zskk.dicom.monitor.report.ErrReporter;
+import com.zskk.dicom.monitor.utils.ExceptionUtil;
+
+public class OldUploadRunner implements Runnable {
+
+
+	public OldUploadRunner() {
+	}
+
+	@Override
+	public void run() {
+		while(true) {
+			boolean flag = upload();
+			Configs.sysLog.info("--OldUploadQueue-- System upload flag:" + flag + "\nUploadsQueue.fileQueue.size:" + UploadsQueue.fileQueue.size());
+			try {
+				TimeUnit.MILLISECONDS.sleep(10);
+				if(UploadsQueue.fileQueue.size() == 0) {
+					Configs.sysLog.info("The old UploadQueue is empty");
+					return;
+				}
+				if(!flag) {
+					TimeUnit.SECONDS.sleep(1);
+				}
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		
+	}
+	
+	public synchronized static boolean upload() {
+		boolean flag = false;
+		try {
+			// 从队列中移除已完成任务
+			if(UploadsQueue.fileQueue.size() > 0) {	
+				File file = UploadsQueue.fileQueue.remove(0);
+				FileUploader.upload(file);
+				flag = true;
+			}
+		} catch (Throwable e) {
+			ErrReporter.report(ExceptionUtil.getExceptionTxt(e));
+			e.printStackTrace();
+		}	
+		return flag;
+	}
+
+}

+ 69 - 0
dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/RemoveQueue.java

@@ -0,0 +1,69 @@
+package com.zskk.dicom.monitor.uploader;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.apache.commons.io.FileUtils;
+
+import com.zskk.dicom.monitor.config.Configs;
+
+public class RemoveQueue {
+
+	/**
+	 * 待处理的文件队列
+	 */
+	protected static List<File> fileQueue = Collections.synchronizedList(new ArrayList<File>());
+	protected static List<File> currentFileQueue = Collections.synchronizedList(new ArrayList<File>());
+
+	/**
+	 * 文件上传线程池
+	 */
+//	private static ExecutorService pools = Executors.newFixedThreadPool(2);
+
+	public static void add(File file) {
+		if (fileQueue.contains(file)) {
+			// 文件已经在队列中
+			Configs.sysLog.info(file + ", The file is already in the old queue!");
+		} else {
+			fileQueue.add(file);
+			Configs.sysLog.info(file + ", The file is added to the old queue!");
+//			pools.execute(new UploadRunner(file));
+		}
+	}
+	
+	public static void addCurrent(File file) {
+		if (currentFileQueue.contains(file)) {
+			// 文件已经在队列中
+			Configs.sysLog.info(file + ", The file is already in the current queue!");
+		} else {
+			currentFileQueue.add(file);
+			Configs.sysLog.info(file + ", The file is added to the current queue!");
+//			pools.execute(new UploadRunner(file));
+		}
+	}
+
+	/**
+	 * 系统启动时,将文件夹中的文件添加到上传队列中
+	 */
+	@SuppressWarnings("rawtypes")
+	public static void init() {
+		File dir = new File(Configs.monitorDir);
+		StringBuilder sb = new StringBuilder();
+		Iterator its = FileUtils.iterateFiles(dir, new String[] { "dcm" }, true);
+		while (its.hasNext()) {
+			File file = (File) its.next();
+			add(file);
+			sb.append(file.getAbsolutePath() + "\n");
+		}
+		if (sb.length() > 0) {
+			Configs.sysLog.info("System start & inits, this files added to the queue:\n" + sb.toString());
+		}
+		sb = null;
+	}
+
+}

+ 16 - 4
dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/UploadsQueue.java

@@ -18,20 +18,32 @@ public class UploadsQueue {
 	 * 待处理的文件队列
 	 */
 	protected static List<File> fileQueue = Collections.synchronizedList(new ArrayList<File>());
+	protected static List<File> currentFileQueue = Collections.synchronizedList(new ArrayList<File>());
 
 	/**
 	 * 文件上传线程池
 	 */
-	private static ExecutorService pools = Executors.newFixedThreadPool(2);
+//	private static ExecutorService pools = Executors.newFixedThreadPool(2);
 
 	public static void add(File file) {
 		if (fileQueue.contains(file)) {
 			// 文件已经在队列中
-			Configs.sysLog.info(file + ", The file is already in the queue!");
+			Configs.sysLog.info(file + ", The file is already in the old queue!");
 		} else {
 			fileQueue.add(file);
-			Configs.sysLog.info(file + ", The file is added to the queue!");
-			pools.execute(new UploadRunner(file));
+			Configs.sysLog.info(file + ", The file is added to the old queue!");
+//			pools.execute(new UploadRunner(file));
+		}
+	}
+	
+	public static void addCurrent(File file) {
+		if (currentFileQueue.contains(file)) {
+			// 文件已经在队列中
+			Configs.sysLog.info(file + ", The file is already in the current queue!");
+		} else {
+			currentFileQueue.add(file);
+			Configs.sysLog.info(file + ", The file is added to the current queue!");
+//			pools.execute(new UploadRunner(file));
 		}
 	}
 

BIN=BIN
dicom_monitor/src/main/java/com/zskk/dicom/oss/OSSFileAndCallbackHleper.java


+ 3 - 3
dicom_monitor/src/main/resources/project.properties

@@ -1,5 +1,5 @@
-monitor.monitorDir=D:\\ZSKK_SYSTEM\\ScpServer\\Release\\DICOM
-monitor.hospitalId=13000003
+monitor.monitorDir=C:\\USers\\PACSBox-3\\Desktop\\test
+monitor.hospitalId=73090001
 monitor.postHost=api.pacsonline.cn
 monitor.postPort=80
 monitor.postUri=/upload
@@ -12,5 +12,5 @@ monitor.errReportFromEmailPwd=Abc1234
 monitor.oss.region=oss-cn-beijing
 monitor.oss.endpoint=oss-cn-beijing.aliyuncs.com
 monitor.oss.scheme=dicomweb
-monitor.oss.bucket=13000003
+monitor.oss.bucket=zskk-dcm
 monitor.oss.callback_url=http://api.aliyuoss.callback.pacsonline.cn/oss_callback

+ 1 - 1
dicom_monitor/target/maven-archiver/pom.properties

@@ -1,5 +1,5 @@
 #Generated by Maven
-#Mon Nov 05 18:00:43 CST 2018
+#Wed Nov 28 15:57:41 CST 2018
 version=0.0.1-SNAPSHOT
 groupId=dicom_monitor
 artifactId=dicom_monitor

+ 19 - 17
dicom_monitor/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -1,37 +1,39 @@
 com/zskk/dicom/monitor/monitors/FileChangeProc$1.class
 com/zskk/dicom/oss/BaseOSSHleper.class
-com/zskk/dicom/monitor/monitors/FileChangeProc$1$1.class
-com/zskk/dicom/response/FileUploadChcekResponse.class
-com/zskk/dicom/monitor/report/ErrReporter.class
-com/zskk/dicom/response/BaseResponse.class
 com/zskk/dicom/response/bean/BaseResponseBean.class
-com/zskk/dicom/monitor/monitors/FileAction.class
-com/zskk/dicom/monitor/monitors/FileActionCallback.class
-com/zskk/dicom/response/bean/FileUploadChcekResponseBean.class
-com/zskk/dicom/response/ZskkResponseFactory$ZskkExceptionFactoryHoler.class
-com/zskk/dicom/response/ZskkResponseFactory$1.class
-com/zskk/dicom/oss/OSSFileAndCallbackHleper$1.class
-com/zskk/dicom/config/OSSConfig.class
+com/zskk/dicom/request/bean/ALiYunOSSCallbackBodyBean.class
 com/zskk/dicom/config/NetCodeConfig.class
 com/zskk/dicom/monitor/monitors/WatchDir.class
-com/zskk/dicom/response/ZskkResponseFactory.class
-com/zskk/dicom/monitor/monitors/FileChangeProc.class
 com/zskk/dicom/monitor/config/Constants.class
-com/zskk/dicom/monitor/schedules/StatTimer.class
 com/zskk/dicom/monitor/uploader/UploadRunner.class
 com/zskk/dicom/monitor/uploader/FileMover.class
 com/zskk/dicom/monitor/utils/FileHashUtil.class
 com/zskk/dicom/monitor/monitors/WatchDir$1.class
 com/zskk/dicom/monitor/utils/MonitorFileUtils.class
 com/zskk/dicom/monitor/utils/ExceptionUtil.class
-com/zskk/dicom/WebStarts.class
-com/zskk/dicom/monitor/uploader/UploadsQueue.class
 com/zskk/dicom/monitor/schedules/DirMonitor.class
 com/zskk/dicom/monitor/utils/LogEnginer.class
 com/zskk/dicom/monitor/uploader/FileUploader.class
 com/zskk/dicom/monitor/config/Configs.class
 com/zskk/dicom/monitor/monitors/InitMonitor.class
-META-INF/spring-autoconfigure-metadata.properties
 com/zskk/dicom/monitor/utils/MailerUtil.class
 com/zskk/dicom/monitor/report/ErrReporterSender.class
+com/zskk/dicom/monitor/monitors/FileChangeProc$1$1.class
+com/zskk/dicom/response/FileUploadChcekResponse.class
+com/zskk/dicom/monitor/report/ErrReporter.class
+com/zskk/dicom/response/BaseResponse.class
+com/zskk/dicom/monitor/monitors/FileAction.class
+com/zskk/dicom/monitor/monitors/FileActionCallback.class
+com/zskk/dicom/response/bean/FileUploadChcekResponseBean.class
+com/zskk/dicom/response/ZskkResponseFactory$ZskkExceptionFactoryHoler.class
+com/zskk/dicom/response/ZskkResponseFactory$1.class
+com/zskk/dicom/config/OSSConfig.class
+com/zskk/dicom/response/ZskkResponseFactory.class
+com/zskk/dicom/oss/OSSFileAndCallbackHleper.class
+com/zskk/dicom/monitor/monitors/FileChangeProc.class
+com/zskk/dicom/monitor/schedules/StatTimer.class
+com/zskk/dicom/response/bean/FileUploadResponseBean.class
+com/zskk/dicom/WebStarts.class
+com/zskk/dicom/monitor/uploader/UploadsQueue.class
+META-INF/spring-autoconfigure-metadata.properties
 com/zskk/dicom/monitor/schedules/StatRunner.class

+ 4 - 0
dicom_monitor/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -14,13 +14,17 @@
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/utils/LogEnginer.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/utils/MonitorFileUtils.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/response/bean/FileUploadChcekResponseBean.java
+/Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/OldUploadRunner.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/report/ErrReporterSender.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/WebStarts.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/config/NetCodeConfig.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/config/OSSConfig.java
+/Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/CurrentUploadRunner.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/monitors/FileActionCallback.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/request/bean/ALiYunOSSCallbackBodyBean.java
+/Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/HistoryFile2UploadQuenu.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/response/ZskkResponseFactory.java
+/Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/RemoveQueue.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/uploader/UploadRunner.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/oss/BaseOSSHleper.java
 /Users/fuyu/java/zskk_uploader/dicom_monitor/src/main/java/com/zskk/dicom/monitor/schedules/StatRunner.java

+ 3 - 3
dicom_monitor/target/surefire-reports/TEST-dicom_monitor.OSSTest.xml

@@ -26,20 +26,20 @@
 "/>
     <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
     <property name="os.name" value="Mac OS X"/>
-    <property name="classworlds.conf" value="/Users/fuyu/Documents/workspace/.metadata/.plugins/org.eclipse.m2e.launching/launches/m2conf6176834446942663687.tmp"/>
+    <property name="classworlds.conf" value="/Users/fuyu/Documents/workspace/.metadata/.plugins/org.eclipse.m2e.launching/launches/m2conf4096755798013150511.tmp"/>
     <property name="sun.jnu.encoding" value="UTF-8"/>
     <property name="java.library.path" value="/Users/fuyu/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
     <property name="java.specification.name" value="Java Platform API Specification"/>
     <property name="java.class.version" value="52.0"/>
     <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
-    <property name="os.version" value="10.13.6"/>
+    <property name="os.version" value="10.14.2"/>
     <property name="user.home" value="/Users/fuyu"/>
     <property name="user.timezone" value="Asia/Shanghai"/>
     <property name="java.awt.printerjob" value="sun.lwawt.macosx.CPrinterJob"/>
     <property name="java.specification.version" value="1.8"/>
     <property name="file.encoding" value="UTF-8"/>
     <property name="user.name" value="fuyu"/>
-    <property name="java.class.path" value="/Applications/Eclipse.app/Contents/Eclipse/plugins/org.eclipse.m2e.maven.runtime_1.7.0.20160603-1931/jars/plexus-classworlds-2.5.2.jar"/>
+    <property name="java.class.path" value="/Applications/Eclipse.app/Contents/Eclipse/plugins/org.eclipse.m2e.maven.runtime_1.7.1.20161104-1803/jars/plexus-classworlds-2.5.2.jar"/>
     <property name="java.vm.specification.version" value="1.8"/>
     <property name="sun.arch.data.model" value="64"/>
     <property name="java.home" value="/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre"/>

+ 1 - 1
dicom_monitor/target/surefire-reports/dicom_monitor.OSSTest.txt

@@ -1,4 +1,4 @@
 -------------------------------------------------------------------------------
 Test set: dicom_monitor.OSSTest
 -------------------------------------------------------------------------------
-Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
+Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec

BIN=BIN
dicom_monitor/target/zskk-dicom-monitor-jar-with-dependencies.jar


BIN=BIN
dicom_monitor/target/zskk-dicom-monitor.jar


BIN=BIN
dicom_monitor/target/zskk-dicom-monitor.jar.original