From 4d8078c6c15c67b46ccae8af3973c52f8e3eb4f4 Mon Sep 17 00:00:00 2001
From: chenlw <874313221@qq.com>
Date: Tue, 20 Sep 2016 20:32:46 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95=E4=BF=AE=E6=94=B9=E4=BB=A3?=
 =?UTF-8?q?=E7=A0=81-=E8=81=94=E8=B0=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/META-INF/persistence.xml                  |   10 +-
 src/com/base/BaseController.java              |  128 +-
 src/com/base/Constant.java                    |   46 +-
 src/com/base/Custom4exception.java            |   63 +-
 src/com/base/CustomException.java             |  254 ++--
 src/com/base/Resource.java                    |  158 +--
 src/com/dao/mapper/RegionalismMapper.xml      |   82 +-
 src/com/dao/mapper/SystemCodeMapper.xml       |   82 +-
 src/com/dao/mapper/config-details-mapper.xml  |  290 ++---
 src/com/dao/mapper/data-details-mapper.xml    |  496 ++++----
 src/com/dao/mapper/dataInfoMoveTmpmapper.xml  |  376 +++---
 .../controller/DataModelController.java       |  646 +++++-----
 .../controller/DefaultController.java         |   64 +-
 .../platform/controller/FolderController.java |  228 ++--
 .../controller/SetGlusterfsController.java    |  104 +-
 .../controller/ShowGlusterfsController.java   |  100 +-
 .../controller/TaskModelController.java       |   56 +-
 src/com/platform/dao/DataInfoDao.java         |   54 +-
 src/com/platform/dao/DataInfoMoveTmpDao.java  |   58 +-
 src/com/platform/dao/EncodeInfoDao.java       |  196 +--
 src/com/platform/dao/GatherOracleDao.java     |   78 +-
 src/com/platform/dao/IRegionalismCodeDao.java |   56 +-
 src/com/platform/dao/ISystemCodeDao.java      |   56 +-
 src/com/platform/entities/BasedType.java      |   96 +-
 src/com/platform/entities/Brick.java          |  220 ++--
 src/com/platform/entities/DataInfoEntity.java |  538 ++++----
 .../entities/DataInfoEntityMoveTmp.java       |  248 ++--
 .../platform/entities/EncodedInfoEntity.java  |   82 +-
 src/com/platform/entities/FolderNode.java     |  130 +-
 .../platform/entities/GatherOracleInfo.java   |  164 +--
 .../platform/entities/GfsFolderEntity.java    |  154 +--
 .../entities/OracleConnectorParams.java       |  186 +--
 src/com/platform/entities/PagerOptions.java   |  316 ++---
 .../platform/entities/RegionalismEntity.java  |  106 +-
 .../entities/SimpleConfigParamsBean.java      |   88 +-
 src/com/platform/entities/SystemEntity.java   |   74 +-
 src/com/platform/entities/VolumeEntity.java   |  324 ++---
 src/com/platform/entities/volumeMoveForm.java |   54 +
 src/com/platform/glusterfs/CheckoutMD5.java   |  212 ++--
 src/com/platform/glusterfs/ClusterInfo.java   |  248 ++--
 src/com/platform/glusterfs/CopyData.java      |  286 ++---
 src/com/platform/glusterfs/GetTreeData.java   |  250 ++--
 src/com/platform/glusterfs/RemoveData.java    |  112 +-
 src/com/platform/glusterfs/SetCluster.java    |  134 +-
 src/com/platform/glusterfs/SetVolume.java     | 1080 ++++++++---------
 src/com/platform/glusterfs/ShowData.java      |  262 ++--
 src/com/platform/glusterfs/SizeInfo.java      |  184 +--
 src/com/platform/glusterfs/VolumeInfo.java    |  812 ++++++-------
 .../platform/kubernetes/SimpleKubeClient.java |  308 ++---
 src/com/platform/oracle/OracleConnector.java  |  150 +--
 src/com/platform/service/DataInfoService.java |   32 +-
 .../platform/service/DataInfoServiceImp.java  |  178 +--
 .../platform/service/EncodeInfoService.java   |   40 +-
 .../service/EncodeInfoServiceImpl.java        |  104 +-
 src/com/platform/service/ICodeService.java    |   80 +-
 src/com/platform/service/IGfsService.java     |  152 +--
 .../platform/service/IMoveDataService.java    |   81 +-
 src/com/platform/service/IMySqlService.java   |   50 +-
 .../service/IOracleExtractService.java        |   44 +-
 .../platform/service/OracleExtractHelper.java |  343 +++---
 .../service/OracleExtractService.java         |   48 +-
 .../platform/service/OracleStatusService.java |  340 +++---
 .../service/SimplePropertyReader.java         |   40 +-
 .../service/impl/CodeServiceImpl.java         |  132 +-
 .../platform/service/impl/GfsServiceImpl.java |  322 ++---
 .../service/impl/MoveDataServiceImpl.java     |  333 ++---
 .../service/impl/MySqlServiceImpl.java        |  112 +-
 .../impl/OracleExtractServiceImpl.java        |  188 +--
 .../service/thread/ThreadMoveData.java        |  378 +++---
 .../service/thread/TreadMoveData2Start.java   |   94 +-
 src/com/platform/utils/Bean2MapUtils.java     |  174 +--
 src/com/platform/utils/CacheTreeData.java     |   78 +-
 src/com/platform/utils/ConfigLoder.java       |  168 +--
 .../platform/utils/ConfigPropertyReader.java  |  168 +--
 src/com/platform/utils/Configs.java           |  104 +-
 src/com/platform/utils/ConfigsLoader.java     |  148 +--
 src/com/platform/utils/Constant.java          |   98 +-
 src/com/platform/utils/DateForm.java          |  274 ++---
 src/com/platform/utils/DateHandle.java        |   18 +-
 src/com/platform/utils/FileOperateHelper.java |  190 +--
 src/com/platform/utils/GanymedSSH.java        |  536 ++++----
 src/com/platform/utils/RunCommand.java        |  120 +-
 src/com/platform/utils/Support.java           |   62 +-
 src/com/platform/utils/TestSupport.java       |   28 +-
 src/com/platform/utils/ThreadVolume.java      |  266 ++--
 src/com/platform/utils/UtilsHelper.java       |  226 ++--
 src/com/platform/utils/getTreeDataByPath.java |   98 +-
 .../websocket/SystemWebSocketHandler.java     |   51 -
 .../platform/websocket/WebSocketConfig.java   |   28 -
 89 files changed, 8228 insertions(+), 8197 deletions(-)
 create mode 100644 src/com/platform/entities/volumeMoveForm.java
 delete mode 100644 src/com/platform/websocket/SystemWebSocketHandler.java
 delete mode 100644 src/com/platform/websocket/WebSocketConfig.java

diff --git a/src/META-INF/persistence.xml b/src/META-INF/persistence.xml
index 2ad4aeca..200e82f9 100644
--- a/src/META-INF/persistence.xml
+++ b/src/META-INF/persistence.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
-	<persistence-unit name="aggregation-platform">
-	</persistence-unit>
-</persistence>
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
+	<persistence-unit name="aggregation-platform">
+	</persistence-unit>
+</persistence>
diff --git a/src/com/base/BaseController.java b/src/com/base/BaseController.java
index 64c66474..8a98dcfd 100644
--- a/src/com/base/BaseController.java
+++ b/src/com/base/BaseController.java
@@ -1,65 +1,65 @@
-
-/**
- * 文件名    : BaseController.java
- * 版权       : XX科技有限公司。
- * 描述       : <描述>
- * 修改时间:2016年9月7日
- * 修改内容:<修改内容>
- */
-package com.base;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.log4j.Logger;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-
-import com.platform.utils.Configs;
-
-/**
- * <一句话功能简述> 
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月7日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-public class BaseController { 
-	
-	/** log4j  */
-	public static Logger log = Logger.getRootLogger();
-	
-    /**
-     * <一句话功能简述> 基于@ExceptionHandler异常处理----全局异常处理
-     * <功能详细描述>
-     * @param request
-     * @param ex 异常
-     * @return
-     * @see [类、类#方法、类#成员]
-     */
-    @ExceptionHandler  
-    public Object exp(HttpServletRequest request, HttpServletResponse response,Exception ex) {  
-        System.out.println("URI"+request.getRequestURI());
-        request.setAttribute("ex", ex);  
-        System.err.println("BaseController --exp ");
-        // 根据不同错误转向不同页面  
-        if(ex instanceof CustomException) {
-        	CustomException cuse = (CustomException) ex;
-        	Map<String, String> errmsg = new HashMap<>();
-        	errmsg.put("code", cuse.getCode());
-        	errmsg.put("msg", cuse.getMsg());
-        	log.error(cuse.getCode());
-        	response.setStatus(500);
-            return response;  
-        } else {  
-        	//其他错误则 调到指定页面
-        	log.error(Configs.GLOBAL_EXP_NOT_CUSTOM, ex);
-        	response.setStatus(500);
-            return response;  
-        }  
-    }  
-
+
+/**
+ * 文件名    : BaseController.java
+ * 版权       : XX科技有限公司。
+ * 描述       : <描述>
+ * 修改时间:2016年9月7日
+ * 修改内容:<修改内容>
+ */
+package com.base;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+
+import com.platform.utils.Configs;
+
+/**
+ * <一句话功能简述> 
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月7日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+public class BaseController { 
+	
+	/** log4j  */
+	public static Logger log = Logger.getRootLogger();
+	
+    /**
+     * <一句话功能简述> 基于@ExceptionHandler异常处理----全局异常处理
+     * <功能详细描述>
+     * @param request
+     * @param ex 异常
+     * @return
+     * @see [类、类#方法、类#成员]
+     */
+    @ExceptionHandler  
+    public Object exp(HttpServletRequest request, HttpServletResponse response,Exception ex) {  
+        System.out.println("URI"+request.getRequestURI());
+        request.setAttribute("ex", ex);  
+        System.err.println("BaseController --exp ");
+        // 根据不同错误转向不同页面  
+        if(ex instanceof CustomException) {
+        	CustomException cuse = (CustomException) ex;
+        	Map<String, String> errmsg = new HashMap<>();
+        	errmsg.put("code", cuse.getCode());
+        	errmsg.put("msg", cuse.getMsg());
+        	log.error(cuse.getCode());
+        	response.setStatus(500);
+            return response;  
+        } else {  
+        	//其他错误则 调到指定页面
+        	log.error(Configs.GLOBAL_EXP_NOT_CUSTOM, ex);
+        	response.setStatus(500);
+            return response;  
+        }  
+    }  
+
 }  
\ No newline at end of file
diff --git a/src/com/base/Constant.java b/src/com/base/Constant.java
index 4d336465..3b1dcc59 100644
--- a/src/com/base/Constant.java
+++ b/src/com/base/Constant.java
@@ -1,23 +1,23 @@
-package com.base;
-
-/**
- * <一句话功能简述>
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-public class Constant {
-	
-	/** 国际话配置文件文件-i18n.properties  */
-	public static String I18N_PROPERTIES_FIEL_PATH = "/com/base/i18n.properties";
-	
-	/** WritefileThread-线程睡眠时间--3000 */
-	public final static long THREAD_SLEEP_WRITEFILETHREAD = 3000;
-	
-	/** CustomException记录报异常的对象的对象个数--10 */
-	public final static int CustomException_log_object_size = 10;
-	
-	
-}
+package com.base;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+public class Constant {
+	
+	/** 国际话配置文件文件-i18n.properties  */
+	public static String I18N_PROPERTIES_FIEL_PATH = "/com/base/i18n.properties";
+	
+	/** WritefileThread-线程睡眠时间--3000 */
+	public final static long THREAD_SLEEP_WRITEFILETHREAD = 3000;
+	
+	/** CustomException记录报异常的对象的对象个数--10 */
+	public final static int CustomException_log_object_size = 10;
+	
+	
+}
diff --git a/src/com/base/Custom4exception.java b/src/com/base/Custom4exception.java
index 0ca8b567..a5bc8540 100644
--- a/src/com/base/Custom4exception.java
+++ b/src/com/base/Custom4exception.java
@@ -1,29 +1,34 @@
-package com.base;
-
-/**
- * <一句话功能简述> 异常常量编码
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-public class Custom4exception {
-	//3003001001  :  第一位:标识异常,  第二到第四位:标识模块,第五道第七位:标识类别,第八道第十位标识具体异常
-	/**eg
-	 *  3:异常
-	 * 	 003:虚拟机模块
-	 * 	    001:软件依赖虚拟机资源类别
-	 * 	       001:启动异常
-	 */
-	/**
-	 * ThreadVolume类查询 volume异常
-	 */
-	public final static String threadVolume_class_Except = "3001001001";
-	
-	/**
-	 * ThreadVolume类线程休眠异常
-	 */
-	public final static String threadVolume_Thread_Except = "3001001002";
-	
-}
+package com.base;
+
+/**
+ * <一句话功能简述> 异常常量编码
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+public class Custom4exception {
+	//3003001001  :  第一位:标识异常,  第二到第四位:标识模块,第五道第七位:标识类别,第八道第十位标识具体异常
+	/**eg
+	 *  3:异常
+	 * 	 003:虚拟机模块
+	 * 	    001:软件依赖虚拟机资源类别
+	 * 	       001:启动异常
+	 */
+	/**
+	 * ThreadVolume类查询 volume异常
+	 */
+	public final static String threadVolume_class_Except = "3001001001";
+	
+	/**
+	 * ThreadVolume类线程休眠异常
+	 */
+	public final static String threadVolume_Thread_Except = "3001001002";
+	
+	/**
+	 * 抽取汇总
+	 */
+	public final static String threadVolume_Oracle_Except = "3002001002";
+	
+}
diff --git a/src/com/base/CustomException.java b/src/com/base/CustomException.java
index 9cf46a4a..08b75248 100644
--- a/src/com/base/CustomException.java
+++ b/src/com/base/CustomException.java
@@ -1,127 +1,127 @@
-
-
-package com.base;
-
-import org.apache.log4j.Logger;
-
-/**
- * <一句话功能简述>
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-@SuppressWarnings("serial")
-public class CustomException extends Exception {
-	
-	/** log4j  */
-	public static Logger log = Logger.getRootLogger();
-	
-	/** 自定义异常信息-错误信息  */
-	private String msg;
-	
-	/** 自定义异常信息-错误代码  */
-	private String code;
-	
-	/** 操作对象  */
-	private Object[] objArray;
-	
-	/** 异常  */
-	private Throwable cause;
-	
-	public CustomException() {
-	        super();
-    }
-	 
-	/**
-	 * @功能 将异常记录进文件
-	 * @param code 异常编码
-	 * @param msg 自定义异常信息
-	 * @param e
-	 * @param obj
-	 */
-	public CustomException(String code,Exception e,Object... obj) {
-		super(code);
-		StringBuffer sbuf= new StringBuffer();
-		sbuf.append(msg);
-		this.code = code;
-		sbuf.append(code);
-		sbuf.append("\r\n");
-		msg = Resource.getProperties().get(code);
-		// 记录自定义的 异常
-		if (null != msg) {
-			sbuf.append(msg);
-			sbuf.append("\r\n");
-		}
-		// 记录原始的异常
-		if (null != e) {
-			StackTraceElement[] array = e.getStackTrace();
-			cause = e.getCause();
-			for (StackTraceElement stackTraceElement : array) {
-				sbuf.append(stackTraceElement.toString());
-				sbuf.append("\r\n");
-			}
-		}
-		//记录  出现异常时  当前的对象
-		if (null != obj) {
-			Object[] array = obj;
-			sbuf.append("Object[] size :  ");
-			sbuf.append(array.length);
-			int forSize = 0;
-			if (Constant.CustomException_log_object_size < array.length) {
-				forSize = Constant.CustomException_log_object_size;
-			}
-			else {
-				forSize = array.length;
-			}
-			for (int i = 0; i < forSize; i++) {
-				sbuf.append(array[i]);
-				sbuf.append("\r\n");
-			}
-			sbuf.append("......");
-			sbuf.append("\r\n");
-		}
-		else {
-			sbuf.append("null");
-			sbuf.append("\r\n");
-		}
-		
-		sbuf.append("\r\n");
-		// 是否 写入 文件
-		log.error(sbuf.toString());
-	}
-
-	/**
-	 * @功能  获得msg
-	 * @return msg
-	 */
-	public String getMsg() {
-		return msg;
-	}
-	
-
-	/**
-	 * @return the code
-	 */
-	public String getCode() {
-		return code;
-	}
-
-	/**
-	 * @功能  获得objArray
-	 * @return objArray
-	 */
-	public Object[] getObjArray() {
-		return objArray;
-	}
-
-	/**
-	 * @功能  获得cause
-	 * @return cause
-	 */
-	public Throwable getCause() {
-		return cause;
-	}
-}
-
+
+
+package com.base;
+
+import org.apache.log4j.Logger;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+@SuppressWarnings("serial")
+public class CustomException extends Exception {
+	
+	/** log4j  */
+	public static Logger log = Logger.getRootLogger();
+	
+	/** 自定义异常信息-错误信息  */
+	private String msg;
+	
+	/** 自定义异常信息-错误代码  */
+	private String code;
+	
+	/** 操作对象  */
+	private Object[] objArray;
+	
+	/** 异常  */
+	private Throwable cause;
+	
+	public CustomException() {
+	        super();
+    }
+	 
+	/**
+	 * @功能 将异常记录进文件
+	 * @param code 异常编码
+	 * @param msg 自定义异常信息
+	 * @param e
+	 * @param obj
+	 */
+	public CustomException(String code,Exception e,Object... obj) {
+		super(code);
+		StringBuffer sbuf= new StringBuffer();
+		sbuf.append(msg);
+		this.code = code;
+		sbuf.append(code);
+		sbuf.append("\r\n");
+		msg = Resource.getProperties().get(code);
+		// 记录自定义的 异常
+		if (null != msg) {
+			sbuf.append(msg);
+			sbuf.append("\r\n");
+		}
+		// 记录原始的异常
+		if (null != e) {
+			StackTraceElement[] array = e.getStackTrace();
+			cause = e.getCause();
+			for (StackTraceElement stackTraceElement : array) {
+				sbuf.append(stackTraceElement.toString());
+				sbuf.append("\r\n");
+			}
+		}
+		//记录  出现异常时  当前的对象
+		if (null != obj) {
+			Object[] array = obj;
+			sbuf.append("Object[] size :  ");
+			sbuf.append(array.length);
+			int forSize = 0;
+			if (Constant.CustomException_log_object_size < array.length) {
+				forSize = Constant.CustomException_log_object_size;
+			}
+			else {
+				forSize = array.length;
+			}
+			for (int i = 0; i < forSize; i++) {
+				sbuf.append(array[i]);
+				sbuf.append("\r\n");
+			}
+			sbuf.append("......");
+			sbuf.append("\r\n");
+		}
+		else {
+			sbuf.append("null");
+			sbuf.append("\r\n");
+		}
+		
+		sbuf.append("\r\n");
+		// 是否 写入 文件
+		log.error(sbuf.toString());
+	}
+
+	/**
+	 * @功能  获得msg
+	 * @return msg
+	 */
+	public String getMsg() {
+		return msg;
+	}
+	
+
+	/**
+	 * @return the code
+	 */
+	public String getCode() {
+		return code;
+	}
+
+	/**
+	 * @功能  获得objArray
+	 * @return objArray
+	 */
+	public Object[] getObjArray() {
+		return objArray;
+	}
+
+	/**
+	 * @功能  获得cause
+	 * @return cause
+	 */
+	public Throwable getCause() {
+		return cause;
+	}
+}
+
diff --git a/src/com/base/Resource.java b/src/com/base/Resource.java
index 0b900bfe..5cd15923 100644
--- a/src/com/base/Resource.java
+++ b/src/com/base/Resource.java
@@ -1,79 +1,79 @@
-package com.base;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-
-import com.base.Constant;
-
-public class Resource {
-
-	private static Map<String, String> properties = new HashMap<>();
-	
-	static{
-		// 读取 properties文件
-//		readPropertiesFile(Constant.SYSTEM_PROPERTIES_FIEL_PATH);
-		readPropertiesFile4Chinese(Constant.I18N_PROPERTIES_FIEL_PATH);
-	
-	}
-
-	/**
-	 * @功能 读取配置(解决中文乱码)
-	 * @param filename  "/com/utils/exception/i18n.properties"  的格式
-	 */
-	public static void readPropertiesFile4Chinese(String filename) {
-		Properties pro = new Properties();
-		try {
-			// 读取属性文件 XXXX.properties(Reader。writer解决中文乱码)
-//			InputStreamReader in= new InputStreamReader(Resource.class.getClassLoader().getResourceAsStream(filename), "UTF-8");
-			InputStreamReader in= new InputStreamReader(Resource.class.getResourceAsStream(filename), "UTF-8");
-			BufferedReader bf = new BufferedReader(in);
-	//		InputStreamReader in = new BufferedInputStream(new FileInputStream(filename));
-			pro.load(bf); // /加载属性列表
-			Iterator<String> it = pro.stringPropertyNames().iterator();
-			while (it.hasNext()) {
-				String key = it.next();
-				properties.put(key, pro.getProperty(key));
-			}
-			in.close();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * @功能  获得properties
-	 * @return properties
-	 */
-	public static Map<String, String> getProperties() {
-		return properties;
-	}
-
-	/**
-	 * @功能 读取配置
-	 * @param filename 文件绝对路径
-	 */
-	public static void readPropertiesFile(String filename) {
-			Properties pro = new Properties();
-			try {
-				// 读取属性文件 XXXX.properties( 中文会 乱码)
-				BufferedInputStream bf = new BufferedInputStream(new FileInputStream(filename));
-				pro.load(bf); // /加载属性列表
-				Iterator<String> it = pro.stringPropertyNames().iterator();
-				while (it.hasNext()) {
-					String key = it.next();
-					properties.put(key, pro.getProperty(key));
-				}
-				bf.close();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-
-}
+package com.base;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+import com.base.Constant;
+
+public class Resource {
+
+	private static Map<String, String> properties = new HashMap<>();
+	
+	static{
+		// 读取 properties文件
+//		readPropertiesFile(Constant.SYSTEM_PROPERTIES_FIEL_PATH);
+		readPropertiesFile4Chinese(Constant.I18N_PROPERTIES_FIEL_PATH);
+	
+	}
+
+	/**
+	 * @功能 读取配置(解决中文乱码)
+	 * @param filename  "/com/utils/exception/i18n.properties"  的格式
+	 */
+	public static void readPropertiesFile4Chinese(String filename) {
+		Properties pro = new Properties();
+		try {
+			// 读取属性文件 XXXX.properties(Reader。writer解决中文乱码)
+//			InputStreamReader in= new InputStreamReader(Resource.class.getClassLoader().getResourceAsStream(filename), "UTF-8");
+			InputStreamReader in= new InputStreamReader(Resource.class.getResourceAsStream(filename), "UTF-8");
+			BufferedReader bf = new BufferedReader(in);
+	//		InputStreamReader in = new BufferedInputStream(new FileInputStream(filename));
+			pro.load(bf); // /加载属性列表
+			Iterator<String> it = pro.stringPropertyNames().iterator();
+			while (it.hasNext()) {
+				String key = it.next();
+				properties.put(key, pro.getProperty(key));
+			}
+			in.close();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * @功能  获得properties
+	 * @return properties
+	 */
+	public static Map<String, String> getProperties() {
+		return properties;
+	}
+
+	/**
+	 * @功能 读取配置
+	 * @param filename 文件绝对路径
+	 */
+	public static void readPropertiesFile(String filename) {
+			Properties pro = new Properties();
+			try {
+				// 读取属性文件 XXXX.properties( 中文会 乱码)
+				BufferedInputStream bf = new BufferedInputStream(new FileInputStream(filename));
+				pro.load(bf); // /加载属性列表
+				Iterator<String> it = pro.stringPropertyNames().iterator();
+				while (it.hasNext()) {
+					String key = it.next();
+					properties.put(key, pro.getProperty(key));
+				}
+				bf.close();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+
+}
diff --git a/src/com/dao/mapper/RegionalismMapper.xml b/src/com/dao/mapper/RegionalismMapper.xml
index 9110649b..ce2c48f5 100644
--- a/src/com/dao/mapper/RegionalismMapper.xml
+++ b/src/com/dao/mapper/RegionalismMapper.xml
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="UTF-8" ?>    
-<!DOCTYPE mapper    
-PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
-"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
-
-<mapper namespace="com.platform.dao.IRegionalismCodeDao">
-	<resultMap id="getEntityByText" type="com.platform.entities.RegionalismEntity">
-		<id property="code" column="code" jdbcType="VARCHAR" />
-		<result property="cityName" column="city_name" jdbcType="VARCHAR" />
-		<result property="districtName" column="district_name" jdbcType="VARCHAR" />
-	</resultMap>
-	
-	<sql id="Base_Column_List">
-		code,city_name,district_name
-	</sql>
-	
-	<!-- 获取数据全部记录信息 -->
-	<select id="findAllRegionalism" resultMap="getEntityByText">
-		SELECT
-		<include refid="Base_Column_List" />
-		FROM regionalism_info
-		order by code
-	</select>
-	
-	<select id="findSubRegionalism" parameterType="com.platform.entities.RegionalismEntity" resultMap="getEntityByText">
-		SELECT
-		<include refid="Base_Column_List" />
-		FROM regionalism_info
-		<where>
-			<if test="code != null and code != ''">
-				AND code LIKE CONCAT(CONCAT('%', #{code}), '%')
-			</if>
-			<if test="cityName != null and cityName != ''">
-				AND city_name LIKE CONCAT(CONCAT('%', #{cityName}), '%')
-			</if>
-			<if test="districtName != null and districtName != ''">
-				AND district_name LIKE CONCAT(CONCAT('%', #{districtName}), '%')
-			</if>
-		</where>
-		order by code
-	</select>
+<?xml version="1.0" encoding="UTF-8" ?>    
+<!DOCTYPE mapper    
+PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
+"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+
+<mapper namespace="com.platform.dao.IRegionalismCodeDao">
+	<resultMap id="getEntityByText" type="com.platform.entities.RegionalismEntity">
+		<id property="code" column="code" jdbcType="VARCHAR" />
+		<result property="cityName" column="city_name" jdbcType="VARCHAR" />
+		<result property="districtName" column="district_name" jdbcType="VARCHAR" />
+	</resultMap>
+	
+	<sql id="Base_Column_List">
+		code,city_name,district_name
+	</sql>
+	
+	<!-- 获取数据全部记录信息 -->
+	<select id="findAllRegionalism" resultMap="getEntityByText">
+		SELECT
+		<include refid="Base_Column_List" />
+		FROM regionalism_info
+		order by code
+	</select>
+	
+	<select id="findSubRegionalism" parameterType="com.platform.entities.RegionalismEntity" resultMap="getEntityByText">
+		SELECT
+		<include refid="Base_Column_List" />
+		FROM regionalism_info
+		<where>
+			<if test="code != null and code != ''">
+				AND code LIKE CONCAT(CONCAT('%', #{code}), '%')
+			</if>
+			<if test="cityName != null and cityName != ''">
+				AND city_name LIKE CONCAT(CONCAT('%', #{cityName}), '%')
+			</if>
+			<if test="districtName != null and districtName != ''">
+				AND district_name LIKE CONCAT(CONCAT('%', #{districtName}), '%')
+			</if>
+		</where>
+		order by code
+	</select>
 </mapper>  
\ No newline at end of file
diff --git a/src/com/dao/mapper/SystemCodeMapper.xml b/src/com/dao/mapper/SystemCodeMapper.xml
index f835c99f..c23937dd 100644
--- a/src/com/dao/mapper/SystemCodeMapper.xml
+++ b/src/com/dao/mapper/SystemCodeMapper.xml
@@ -1,42 +1,42 @@
-<?xml version="1.0" encoding="UTF-8" ?>    
-<!DOCTYPE mapper    
-PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
-"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
-
-<mapper namespace="com.platform.dao.ISystemCodeDao">
-	<resultMap id="getEntityByText" type="com.platform.entities.SystemEntity">
-		<id property="code" column="code" jdbcType="INTEGER" />
-		<result property="systemName" column="system_name" jdbcType="VARCHAR" />
-	</resultMap>
-	
-	<sql id="Base_Column_List">
-		code,system_name
-	</sql>
-	
-	<!-- 获取数据全部记录信息 -->
-	<select id="findAllSystem" resultMap="getEntityByText">
-		SELECT
-		<include refid="Base_Column_List" />
-		FROM system_info
-		order by code
-	</select>
-	
-	<select id="findSubSystem" parameterType="com.platform.entities.SystemEntity" resultMap="getEntityByText">
-		SELECT
-		<include refid="Base_Column_List" />
-		FROM system_info
-		<where>
-			<if test="code > 0">
-				AND code = #{code}
-			</if>
-			<if test="cityName != null and cityName != ''">
-				AND city_name LIKE CONCAT(CONCAT('%', #{cityName}), '%')
-			</if>
-			<if test="districtName != null and districtName != ''">
-				AND district_name LIKE CONCAT(CONCAT('%', #{districtName}), '%')
-			</if>
-		</where>
-		order by code
-	</select>
-	
+<?xml version="1.0" encoding="UTF-8" ?>    
+<!DOCTYPE mapper    
+PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
+"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+
+<mapper namespace="com.platform.dao.ISystemCodeDao">
+	<resultMap id="getEntityByText" type="com.platform.entities.SystemEntity">
+		<id property="code" column="code" jdbcType="INTEGER" />
+		<result property="systemName" column="system_name" jdbcType="VARCHAR" />
+	</resultMap>
+	
+	<sql id="Base_Column_List">
+		code,system_name
+	</sql>
+	
+	<!-- 获取数据全部记录信息 -->
+	<select id="findAllSystem" resultMap="getEntityByText">
+		SELECT
+		<include refid="Base_Column_List" />
+		FROM system_info
+		order by code
+	</select>
+	
+	<select id="findSubSystem" parameterType="com.platform.entities.SystemEntity" resultMap="getEntityByText">
+		SELECT
+		<include refid="Base_Column_List" />
+		FROM system_info
+		<where>
+			<if test="code > 0">
+				AND code = #{code}
+			</if>
+			<if test="cityName != null and cityName != ''">
+				AND city_name LIKE CONCAT(CONCAT('%', #{cityName}), '%')
+			</if>
+			<if test="districtName != null and districtName != ''">
+				AND district_name LIKE CONCAT(CONCAT('%', #{districtName}), '%')
+			</if>
+		</where>
+		order by code
+	</select>
+	
 </mapper>  
\ No newline at end of file
diff --git a/src/com/dao/mapper/config-details-mapper.xml b/src/com/dao/mapper/config-details-mapper.xml
index 439d4f98..3d1dba4d 100644
--- a/src/com/dao/mapper/config-details-mapper.xml
+++ b/src/com/dao/mapper/config-details-mapper.xml
@@ -1,146 +1,146 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper    
-PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
-"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
-
-<mapper namespace="com.platform.dao.GatherOracleDao">
-	<resultMap type="com.platform.entities.GatherOracleInfo" id="getEntityBytext">
-		<id property="id" column="id" javaType="int" jdbcType="INTEGER" />
-		<result property="port" column="service_port" javaType="int" jdbcType="INTEGER"/>
-		<result property="ip" column="service_ip" javaType="string" jdbcType="VARCHAR"/>
-		<result property="name" column="service_name" javaType="string" jdbcType="VARCHAR"/>
-		<result property="user" column="service_user" javaType="string" jdbcType="VARCHAR"/>
-		<result property="password" column="service_password" javaType="string" jdbcType="VARCHAR"/>
-		<result property="databaseName" column="service_database" javaType="string" jdbcType="VARCHAR"/>
-		<result property="tableName" column="service_table" javaType="string" jdbcType="VARCHAR"/>
-		<result property="suffix" column="service_suffix" javaType="string" jdbcType="VARCHAR"/>
-		<result property="status" column="service_status" javaType="string" jdbcType="VARCHAR"/>
-		<result property="remove" column="remove" jdbcType="CHAR"/>
-	</resultMap>
-	<sql id="baseOracleInfo">
-		id id, service_port port, service_ip ip, service_name name, service_user user, service_password password, service_database databaseName, service_table tableName, service_suffix suffix, service_status status
-	</sql>
-
-	<select id="selectAllOracle" resultType="com.platform.entities.GatherOracleInfo">
-		SELECT
-		<include refid="baseOracleInfo" />
-		FROM services_info
-		WHERE remove = "0"
-	</select>
-	
-	<insert id="insertOracle" parameterType="com.platform.entities.GatherOracleInfo">
-		INSERT INTO
-		services_info(
-		<trim suffixOverrides=",">
-			<if test="port > 0">
-				service_port,
-			</if>
-			<if test="ip != null and ip != ''">
-				service_ip,
-			</if>
-			<if test="name != null and name != ''">
-				service_name,
-			</if>
-			<if test="user != null and user != ''">
-				service_user,
-			</if>
-			<if test="password != null and password != ''">
-				service_password,
-			</if>
-			<if test="databaseName != null and databaseName != ''">
-				service_database,
-			</if>
-			<if test="tableName != null and tableName != ''">
-				service_table,
-			</if>
-			<if test="suffix != null and suffix != ''">
-				service_suffix,
-			</if>
-			<if test="status != null and status != ''">
-				service_status,
-			</if>
-		</trim>
-		)
-		VALUES(
-		<trim suffixOverrides=",">
-			<if test="port > 0">
-				#{port},
-			</if>
-			<if test="ip != null and ip != ''">
-				#{ip},
-			</if>
-			<if test="name != null and name != ''">
-				#{name},
-			</if>
-			<if test="user != null and user != ''">
-				#{user},
-			</if>
-			<if test="password != null and password != ''">
-				#{password},
-			</if>
-			<if test="databaseName != null and databaseName != ''">
-				#{databaseName},
-			</if>
-			<if test="tableName != null and tableName != ''">
-				#{tableName},
-			</if>
-			<if test="suffix != null and suffix != ''">
-				#{suffix},
-			</if>
-			<if test="status != null and status != ''">
-				#{status},
-			</if>
-		</trim>
-		)
-	</insert>
-	
-	<delete id="deleteOracleById" parameterType="java.lang.Integer">
-		DELETE FROM services_info 
-		<where>
-			id =#{id}
-		</where>
-	</delete>
-	
-	<update id="updateOracleById" parameterType="com.platform.entities.GatherOracleInfo">
-		UPDATE
-		services_info
-		<set >
-			<trim suffixOverrides=",">
-				<if test="name != null and name != ''">
-					service_name = #{name},
-				</if>
-				<if test="ip != null and ip != ''">
-					service_ip = #{ip},
-				</if>
-				<if test="port > 0">
-					service_port= #{port},
-				</if>
-				<if test="user != null and user != ''">
-					service_user= #{user},
-				</if>
-				<if test="password != null and password != ''">
-					service_password= #{password},
-				</if>
-				<if test="databaseName != null and databaseName != ''">
-					service_database= #{databaseName},
-				</if>
-				<if test="tableName != null and tableName != ''">
-					service_table= #{tableName},
-				</if>
-				<if test="suffix != null and suffix != ''">
-					service_suffix= #{suffix},
-				</if>
-				<if test="status != null and status != ''">
-					service_status= #{status},
-				</if>
-				<if test="remove != null and remove != ''">
-					remove= #{remove},
-				</if>
-			</trim>
-		</set>
-		<where>
-			id = #{id}
-		</where>
-	</update>
-	
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper    
+PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
+"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+
+<mapper namespace="com.platform.dao.GatherOracleDao">
+	<resultMap type="com.platform.entities.GatherOracleInfo" id="getEntityBytext">
+		<id property="id" column="id" javaType="int" jdbcType="INTEGER" />
+		<result property="port" column="service_port" javaType="int" jdbcType="INTEGER"/>
+		<result property="ip" column="service_ip" javaType="string" jdbcType="VARCHAR"/>
+		<result property="name" column="service_name" javaType="string" jdbcType="VARCHAR"/>
+		<result property="user" column="service_user" javaType="string" jdbcType="VARCHAR"/>
+		<result property="password" column="service_password" javaType="string" jdbcType="VARCHAR"/>
+		<result property="databaseName" column="service_database" javaType="string" jdbcType="VARCHAR"/>
+		<result property="tableName" column="service_table" javaType="string" jdbcType="VARCHAR"/>
+		<result property="suffix" column="service_suffix" javaType="string" jdbcType="VARCHAR"/>
+		<result property="status" column="service_status" javaType="string" jdbcType="VARCHAR"/>
+		<result property="remove" column="remove" jdbcType="CHAR"/>
+	</resultMap>
+	<sql id="baseOracleInfo">
+		id id, service_port port, service_ip ip, service_name name, service_user user, service_password password, service_database databaseName, service_table tableName, service_suffix suffix, service_status status
+	</sql>
+
+	<select id="selectAllOracle" resultType="com.platform.entities.GatherOracleInfo">
+		SELECT
+		<include refid="baseOracleInfo" />
+		FROM services_info
+		WHERE remove = "0"
+	</select>
+	
+	<insert id="insertOracle" parameterType="com.platform.entities.GatherOracleInfo">
+		INSERT INTO
+		services_info(
+		<trim suffixOverrides=",">
+			<if test="port > 0">
+				service_port,
+			</if>
+			<if test="ip != null and ip != ''">
+				service_ip,
+			</if>
+			<if test="name != null and name != ''">
+				service_name,
+			</if>
+			<if test="user != null and user != ''">
+				service_user,
+			</if>
+			<if test="password != null and password != ''">
+				service_password,
+			</if>
+			<if test="databaseName != null and databaseName != ''">
+				service_database,
+			</if>
+			<if test="tableName != null and tableName != ''">
+				service_table,
+			</if>
+			<if test="suffix != null and suffix != ''">
+				service_suffix,
+			</if>
+			<if test="status != null and status != ''">
+				service_status,
+			</if>
+		</trim>
+		)
+		VALUES(
+		<trim suffixOverrides=",">
+			<if test="port > 0">
+				#{port},
+			</if>
+			<if test="ip != null and ip != ''">
+				#{ip},
+			</if>
+			<if test="name != null and name != ''">
+				#{name},
+			</if>
+			<if test="user != null and user != ''">
+				#{user},
+			</if>
+			<if test="password != null and password != ''">
+				#{password},
+			</if>
+			<if test="databaseName != null and databaseName != ''">
+				#{databaseName},
+			</if>
+			<if test="tableName != null and tableName != ''">
+				#{tableName},
+			</if>
+			<if test="suffix != null and suffix != ''">
+				#{suffix},
+			</if>
+			<if test="status != null and status != ''">
+				#{status},
+			</if>
+		</trim>
+		)
+	</insert>
+	
+	<delete id="deleteOracleById" parameterType="java.lang.Integer">
+		DELETE FROM services_info 
+		<where>
+			id =#{id}
+		</where>
+	</delete>
+	
+	<update id="updateOracleById" parameterType="com.platform.entities.GatherOracleInfo">
+		UPDATE
+		services_info
+		<set >
+			<trim suffixOverrides=",">
+				<if test="name != null and name != ''">
+					service_name = #{name},
+				</if>
+				<if test="ip != null and ip != ''">
+					service_ip = #{ip},
+				</if>
+				<if test="port > 0">
+					service_port= #{port},
+				</if>
+				<if test="user != null and user != ''">
+					service_user= #{user},
+				</if>
+				<if test="password != null and password != ''">
+					service_password= #{password},
+				</if>
+				<if test="databaseName != null and databaseName != ''">
+					service_database= #{databaseName},
+				</if>
+				<if test="tableName != null and tableName != ''">
+					service_table= #{tableName},
+				</if>
+				<if test="suffix != null and suffix != ''">
+					service_suffix= #{suffix},
+				</if>
+				<if test="status != null and status != ''">
+					service_status= #{status},
+				</if>
+				<if test="remove != null and remove != ''">
+					remove= #{remove},
+				</if>
+			</trim>
+		</set>
+		<where>
+			id = #{id}
+		</where>
+	</update>
+	
 </mapper>
\ No newline at end of file
diff --git a/src/com/dao/mapper/data-details-mapper.xml b/src/com/dao/mapper/data-details-mapper.xml
index 39a61797..217885ca 100644
--- a/src/com/dao/mapper/data-details-mapper.xml
+++ b/src/com/dao/mapper/data-details-mapper.xml
@@ -1,249 +1,249 @@
-<?xml version="1.0" encoding="UTF-8" ?>    
-<!DOCTYPE mapper    
-PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
-"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
-
-<mapper namespace="com.platform.dao.DataInfoDao">
-	<resultMap id="getEntityByText" type="com.platform.entities.DataInfoEntity">
-		<id property="id" column="id" javaType="int" jdbcType="INTEGER" />
-		<result property="regionalismCode" column="regionalism_code"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="cityName" column="city_name" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="districtName" column="district_name"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="systemCode" column="system_code" javaType="int"
-			jdbcType="INTEGER" />
-		<result property="systemName" column="system_name" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="dataType" column="data_type" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="dataVersion" column="data_version" javaType="int"
-			jdbcType="INTEGER" />
-		<result property="submittedBatch" column="submitted_batch"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="dataPath" column="data_path" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="charset" column="data_charset" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="collectingTime" column="collection_time"
-			javaType="string" jdbcType="DATE" />
-		<result property="collectorContacts" column="collector_contacts"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="collectorName" column="collector_name"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="extractStatus" column="extract_status" jdbcType="INTEGER" />
-		
-		<result property="year" column="data_year" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="startYear" column="start_year" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="endYear" column="end_year" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="volumeIp" column="volume_ip" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="volumePath" column="volume_path" javaType="string"
-			jdbcType="VARCHAR" />
-	</resultMap>
-	<sql id="conditionsFilters">
-		<if test="dataType!=null">
-			AND data_details.data_type=#{dataType}
-		</if>
-		<if test="submittedBatch!=null">
-			AND
-			data_details.submitted_batch=#{submittedBatch}
-		</if>
-		<if test="cityName!=null">
-			AND data_details.city_name=#{cityName}
-		</if>
-		<if test="districtName!=null">
-			AND
-			data_details.district_name=#{districtName}
-		</if>
-		<if test="dataVersion !=null">
-			AND data_details.data_version=#{dataVersion}
-		</if>
-		<if test="systemName !=null">
-			AND data_details.system_name=#{systemName}
-		</if>
-		<if test="dataYear !=null">
-			AND data_details.data_year=#{dataYear}
-		</if>
-		<if test="array !=null and array.length > 0">
-			<foreach collection="array" item="item" index="index">
-			AND CONCAT(regionalism_code,system_code,city_name,district_name,system_name) LIKE CONCAT('%',CONCAT(#{item},'%'))
-			</foreach>
-		</if>
-	</sql>
-
-	<!-- 获取数据符合筛选条件的全部记录信息 -->
-	<select id="getLimitedDataInfoEntities" parameterType="com.platform.entities.PagerOptions"
-		resultMap="getEntityByText">
-		SELECT
-		id,regionalism_code,city_name,district_name,system_code,system_name,data_type,data_version,submitted_batch,data_path,data_charset,collection_time,collector_name,collector_contacts,extract_status,data_year,start_year,end_year,volume_ip,volume_path
-		FROM data_details
-			<where>
-				<include refid="conditionsFilters" />
-				<choose>
-					<when test="offset > 0">
-						and data_details.id>= #{offset}
-					</when>
-					<otherwise>
-						and data_details.id>=0
-					</otherwise>
-				</choose>
-			</where>
-			
-			ORDER BY data_details.id
-			<if test="limit > 0">
-				LIMIT #{limit}
-			</if>
-	</select>
-
-	<!-- 获取数据符合筛选条件的总记录条数 -->
-	<select id="getLimitedDataCount" resultType="java.lang.Integer"
-		parameterType="com.platform.entities.PagerOptions">
-		SELECT COUNT(id) FROM data_details
-			<where>
-				<include refid="conditionsFilters" />
-			</where>
-
-	</select>
-
-	<!-- 获取数据查询的起始di -->
-	<select id="getLimitedBeginId" resultType="java.lang.Integer"
-		parameterType="com.platform.entities.PagerOptions">
-		SELECT MAX(idx) FROM (SELECT id idx FROM data_details 
-		ORDER BY id LIMIT 0,#{totalLimit}) AS TEMP
-	</select>
-	
-	<insert id="save" parameterType="com.platform.entities.DataInfoEntity">
-		INSERT INTO
-		data_info(
-		<trim suffixOverrides=",">
-			<if test="regionalismCode != null and regionalismCode != ''">
-				regionalism_code,
-			</if>
-			<if test="systemCode != null">
-				system_code,
-			</if>
-			<if test="dataType != null and dataType != ''">
-				data_type,
-			</if>
-			<if test="dataVersion != null">
-				data_version,
-			</if>
-			<if test="submittedBatch != null and submittedBatch != ''">
-				submitted_batch,
-			</if>
-			<if test="dataPath != null and dataPath != ''">
-				data_path,
-			</if>
-			<if test="collectingTime != null">
-				collection_time,
-			</if>
-			<if test="collectorName != null and collectorName != ''">
-				collector_name,
-			</if>
-			<if test="collectorContacts != null and collectorContacts != ''">
-				collector_contacts,
-			</if>
-			<if test="charset != null and charset != ''">
-				data_charset,
-			</if>
-			<if test="year != null and year != ''">
-				data_year,
-			</if>
-			<if test="startYear != null and startYear != ''">
-				start_year,
-			</if>
-			<if test="endYear != null and endYear != ''">
-				end_year,
-			</if>
-			<if test="volumeIp != null and volumeIp != ''">
-				volume_ip,
-			</if>
-			<if test="volumePath != null and volumePath != ''">
-				volume_path,
-			</if>
-			<if test="extractStatus > 0">
-				extract_status,
-			</if>
-		</trim>
-		)
-		VALUES(
-		<trim suffixOverrides=",">
-			<if test="regionalismCode != null and regionalismCode != ''">
-				#{regionalismCode},
-			</if>
-			<if test="systemCode != null">
-				#{systemCode},
-			</if>
-			<if test="dataType != null and dataType != ''">
-				#{dataType},
-			</if>
-			<if test="dataVersion != null">
-				#{dataVersion},
-			</if>
-			<if test="submittedBatch != null and submittedBatch != ''">
-				#{submittedBatch},
-			</if>
-			<if test="dataPath != null and dataPath != ''">
-				#{dataPath},
-			</if>
-			<if test="collectingTime != null">
-				#{collectingTime},
-			</if>
-			<if test="collectorName != null and collectorName != ''">
-				#{collectorName},
-			</if>
-			<if test="collectorContacts != null and collectorContacts != ''">
-				#{collectorContacts},
-			</if>
-			<if test="charset != null and charset != ''">
-				#{charset},
-			</if>
-			<if test="year != null and year != ''">
-				#{year},
-			</if>
-			<if test="startYear != null and startYear != ''">
-				#{start_year},
-			</if>
-			<if test="endYear != null and endYear != ''">
-				#{end_year},
-			</if>
-			<if test="volumeIp != null and volumeIp != ''">
-				#{volumeIp},
-			</if>
-			<if test="volumePath != null and volumePath != ''">
-				#{volumePath},
-			</if>
-			<if test="extractStatus > 0">
-				#{extractStatus},
-			</if>
-		</trim>
-		)
-	</insert>
-	
-	<select id="getIdIsExist" parameterType="java.util.List" resultType="java.lang.String">
-		select data_path
-		from data_info
-		where id in 
-		<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
-			#{item}
-		</foreach>
-		and remove ='0'
-	</select>
-	
-	<update id="removes" parameterType="java.util.List">
-		UPDATE
-		data_info
-		set remove = '1'
-		where id in
-		<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
-			#{item}
-		</foreach>
-		and remove ='0'
-	</update>
-
+<?xml version="1.0" encoding="UTF-8" ?>    
+<!DOCTYPE mapper    
+PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
+"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+
+<mapper namespace="com.platform.dao.DataInfoDao">
+	<resultMap id="getEntityByText" type="com.platform.entities.DataInfoEntity">
+		<id property="id" column="id" javaType="int" jdbcType="INTEGER" />
+		<result property="regionalismCode" column="regionalism_code"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="cityName" column="city_name" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="districtName" column="district_name"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="systemCode" column="system_code" javaType="int"
+			jdbcType="INTEGER" />
+		<result property="systemName" column="system_name" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="dataType" column="data_type" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="dataVersion" column="data_version" javaType="int"
+			jdbcType="INTEGER" />
+		<result property="submittedBatch" column="submitted_batch"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="dataPath" column="data_path" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="charset" column="data_charset" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="collectingTime" column="collection_time"
+			javaType="string" jdbcType="DATE" />
+		<result property="collectorContacts" column="collector_contacts"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="collectorName" column="collector_name"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="extractStatus" column="extract_status" jdbcType="INTEGER" />
+		
+		<result property="year" column="data_year" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="startYear" column="start_year" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="endYear" column="end_year" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="volumeIp" column="volume_ip" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="volumePath" column="volume_path" javaType="string"
+			jdbcType="VARCHAR" />
+	</resultMap>
+	<sql id="conditionsFilters">
+		<if test="dataType!=null">
+			AND data_details.data_type=#{dataType}
+		</if>
+		<if test="submittedBatch!=null">
+			AND
+			data_details.submitted_batch=#{submittedBatch}
+		</if>
+		<if test="cityName!=null">
+			AND data_details.city_name=#{cityName}
+		</if>
+		<if test="districtName!=null">
+			AND
+			data_details.district_name=#{districtName}
+		</if>
+		<if test="dataVersion !=null">
+			AND data_details.data_version=#{dataVersion}
+		</if>
+		<if test="systemName !=null">
+			AND data_details.system_name=#{systemName}
+		</if>
+		<if test="dataYear !=null">
+			AND data_details.data_year=#{dataYear}
+		</if>
+		<if test="array !=null and array.length > 0">
+			<foreach collection="array" item="item" index="index">
+			AND CONCAT(regionalism_code,system_code,city_name,district_name,system_name) LIKE CONCAT('%',CONCAT(#{item},'%'))
+			</foreach>
+		</if>
+	</sql>
+
+	<!-- 获取数据符合筛选条件的全部记录信息 -->
+	<select id="getLimitedDataInfoEntities" parameterType="com.platform.entities.PagerOptions"
+		resultMap="getEntityByText">
+		SELECT
+		id,regionalism_code,city_name,district_name,system_code,system_name,data_type,data_version,submitted_batch,data_path,data_charset,collection_time,collector_name,collector_contacts,extract_status,data_year,start_year,end_year,volume_ip,volume_path
+		FROM data_details
+			<where>
+				<include refid="conditionsFilters" />
+				<choose>
+					<when test="offset > 0">
+						and data_details.id>= #{offset}
+					</when>
+					<otherwise>
+						and data_details.id>=0
+					</otherwise>
+				</choose>
+			</where>
+			
+			ORDER BY data_details.id
+			<if test="limit > 0">
+				LIMIT #{limit}
+			</if>
+	</select>
+
+	<!-- 获取数据符合筛选条件的总记录条数 -->
+	<select id="getLimitedDataCount" resultType="java.lang.Integer"
+		parameterType="com.platform.entities.PagerOptions">
+		SELECT COUNT(id) FROM data_details
+			<where>
+				<include refid="conditionsFilters" />
+			</where>
+
+	</select>
+
+	<!-- 获取数据查询的起始di -->
+	<select id="getLimitedBeginId" resultType="java.lang.Integer"
+		parameterType="com.platform.entities.PagerOptions">
+		SELECT MAX(idx) FROM (SELECT id idx FROM data_details 
+		ORDER BY id LIMIT 0,#{totalLimit}) AS TEMP
+	</select>
+	
+	<insert id="save" parameterType="com.platform.entities.DataInfoEntity">
+		INSERT INTO
+		data_info(
+		<trim suffixOverrides=",">
+			<if test="regionalismCode != null and regionalismCode != ''">
+				regionalism_code,
+			</if>
+			<if test="systemCode != null">
+				system_code,
+			</if>
+			<if test="dataType != null and dataType != ''">
+				data_type,
+			</if>
+			<if test="dataVersion != null">
+				data_version,
+			</if>
+			<if test="submittedBatch != null and submittedBatch != ''">
+				submitted_batch,
+			</if>
+			<if test="dataPath != null and dataPath != ''">
+				data_path,
+			</if>
+			<if test="collectingTime != null">
+				collection_time,
+			</if>
+			<if test="collectorName != null and collectorName != ''">
+				collector_name,
+			</if>
+			<if test="collectorContacts != null and collectorContacts != ''">
+				collector_contacts,
+			</if>
+			<if test="charset != null and charset != ''">
+				data_charset,
+			</if>
+			<if test="year != null and year != ''">
+				data_year,
+			</if>
+			<if test="startYear != null and startYear != ''">
+				start_year,
+			</if>
+			<if test="endYear != null and endYear != ''">
+				end_year,
+			</if>
+			<if test="volumeIp != null and volumeIp != ''">
+				volume_ip,
+			</if>
+			<if test="volumePath != null and volumePath != ''">
+				volume_path,
+			</if>
+			<if test="extractStatus > 0">
+				extract_status,
+			</if>
+		</trim>
+		)
+		VALUES(
+		<trim suffixOverrides=",">
+			<if test="regionalismCode != null and regionalismCode != ''">
+				#{regionalismCode},
+			</if>
+			<if test="systemCode != null">
+				#{systemCode},
+			</if>
+			<if test="dataType != null and dataType != ''">
+				#{dataType},
+			</if>
+			<if test="dataVersion != null">
+				#{dataVersion},
+			</if>
+			<if test="submittedBatch != null and submittedBatch != ''">
+				#{submittedBatch},
+			</if>
+			<if test="dataPath != null and dataPath != ''">
+				#{dataPath},
+			</if>
+			<if test="collectingTime != null">
+				#{collectingTime},
+			</if>
+			<if test="collectorName != null and collectorName != ''">
+				#{collectorName},
+			</if>
+			<if test="collectorContacts != null and collectorContacts != ''">
+				#{collectorContacts},
+			</if>
+			<if test="charset != null and charset != ''">
+				#{charset},
+			</if>
+			<if test="year != null and year != ''">
+				#{year},
+			</if>
+			<if test="startYear != null and startYear != ''">
+				#{start_year},
+			</if>
+			<if test="endYear != null and endYear != ''">
+				#{end_year},
+			</if>
+			<if test="volumeIp != null and volumeIp != ''">
+				#{volumeIp},
+			</if>
+			<if test="volumePath != null and volumePath != ''">
+				#{volumePath},
+			</if>
+			<if test="extractStatus > 0">
+				#{extractStatus},
+			</if>
+		</trim>
+		)
+	</insert>
+	
+	<select id="getIdIsExist" parameterType="java.util.List" resultType="java.lang.String">
+		select data_path
+		from data_info
+		where id in 
+		<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+		and remove ='0'
+	</select>
+	
+	<update id="removes" parameterType="java.util.List">
+		UPDATE
+		data_info
+		set remove = '1'
+		where id in
+		<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+		and remove ='0'
+	</update>
+
 </mapper>  
\ No newline at end of file
diff --git a/src/com/dao/mapper/dataInfoMoveTmpmapper.xml b/src/com/dao/mapper/dataInfoMoveTmpmapper.xml
index 13a74388..e35029a5 100644
--- a/src/com/dao/mapper/dataInfoMoveTmpmapper.xml
+++ b/src/com/dao/mapper/dataInfoMoveTmpmapper.xml
@@ -1,189 +1,189 @@
-<?xml version="1.0" encoding="UTF-8" ?>    
-<!DOCTYPE mapper    
-PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
-"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
-
-<mapper namespace="com.platform.dao.DataInfoMoveTmpDao">
-	<resultMap id="getEntityByText" type="com.platform.entities.DataInfoEntityMoveTmp">
-		<id property="id" column="id" javaType="int" jdbcType="INTEGER" />
-		<result property="regionalismCode" column="regionalism_code"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="cityName" column="city_name" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="districtName" column="district_name"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="systemCode" column="system_code" javaType="int"
-			jdbcType="INTEGER" />
-		<result property="systemName" column="system_name" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="dataType" column="data_type" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="dataVersion" column="data_version" javaType="int"
-			jdbcType="INTEGER" />
-		<result property="submittedBatch" column="submitted_batch"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="dataPath" column="data_path" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="charset" column="data_charset" javaType="string"
-			jdbcType="VARCHAR" />
-		<result property="collectingTime" column="collection_time"
-			javaType="string" jdbcType="DATE" />
-		<result property="collectorContacts" column="collector_contacts"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="collectorName" column="collector_name"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="year" column="data_year" javaType="string"
-			jdbcType="VARCHAR" />
-			
-		<result property="dstPath" column="dst_path" javaType="string"
-		jdbcType="VARCHAR" />
-		<result property="completeStatus" column="complete_status" javaType="string"
-		jdbcType="VARCHAR" />
-		<result property="rate" column="rate" javaType="int"
-		jdbcType="INTEGER" />
-		<result property="lastTime" column="lasttime"
-			javaType="string" jdbcType="VARCHAR" />
-		<result property="fkid" column="fkid" javaType="int" jdbcType="INTEGER" />
-		<result property="dstVolumeIp" column="dst_volume_ip" jdbcType="VARCHAR" />
-		<result property="dstVolumePath" column="dst_volume_ip" jdbcType="VARCHAR" />
-	</resultMap>
-	
-	<sql id="Base_Column_List">
-		regionalism_code,system_code,dst_path,lasttime,fkid
-	</sql>
-	
-	<!-- 获取数据全部记录信息 -->
-	<select id="findAll" resultType="com.platform.entities.DataInfoEntityMoveTmp">
-		SELECT
-		a.id id,a.regionalism_code regionalismCode,a.dst_path dstPath,a.complete_status completeStatus,
-		a.rate rate, a.lasttime lastTime, a.system_code systemCode,a.dst_volume_ip dstVolumeIp,a.dst_volume_path dstVolumePath,
-		b.city_name cityName,b.district_name districtName,b.system_name systemName,b.data_type dataType,
-		b.data_version dataVersion,b.submitted_batch submittedBatch,b.data_path dataPath,b.data_charset charset,
-		b.collection_time collectingTime,b.collector_name collectorName,b.collector_contacts collectorContacts,
-		b.data_year year,b.extract_status extractStatus,b.start_year startYear,b.end_year endYear,
-		b.volume_ip volumeIp,b.volume_path volumePath
-		FROM 
-		move_data_tmp a LEFT JOIN data_details b 
-		ON a.system_code = b.system_code AND a.regionalism_code = b.regionalism_code AND a.fkid = b.id
-		ORDER BY a.id
-	</select>
-	
-	<update id="update" parameterType="com.platform.entities.DataInfoEntityMoveTmp">
-		UPDATE
-		move_data_tmp
-		<set >
-			<trim suffixOverrides=",">
-				<if test="dstPath != null and dstPath != ''">
-					dst_path= #{dstPath},
-				</if>
-				<if test="completeStatus != null and completeStatus != ''">
-					complete_status= #{completeStatus},
-				</if>
-				<if test="rate > 0">
-					rate= #{rate},
-				</if>
-				<if test="lastTime != null and lastTime != ''">
-					lasttime= #{lastTime},
-				</if>
-			</trim>
-		</set>
-		<where>
-			id = #{id}
-		</where>
-	</update>
-	
-	<insert id="save" parameterType="com.platform.entities.DataInfoEntityMoveTmp">
-		INSERT INTO
-		move_data_tmp(
-		<trim suffixOverrides=",">
-			<if test="id > 0">
-				id,
-			</if>
-			<if test="regionalismCode != null and regionalismCode != ''">
-				regionalism_code,
-			</if>
-			<if test="systemCode != null">
-				system_code,
-			</if>
-			<if test="dstPath != null and dstPath != ''">
-				dst_path,
-			</if>
-			<if test="completeStatus != null and completeStatus != ''">
-				complete_status,
-			</if>
-			<if test="rate > 0">
-				rate,
-			</if>
-			<if test="lastTime != null and lastTime != ''">
-				lasttime,
-			</if>
-			<if test="fkid > 0 ">
-				fkid,
-			</if>
-		</trim>
-		)
-		VALUES(
-		<trim suffixOverrides=",">
-			<if test="id > 0">
-				id,
-			</if>
-			<if test="regionalismCode != null and regionalismCode != ''">
-				#{regionalismCode},
-			</if>
-			<if test="systemCode != null and systemCode != ''">
-				#{systemCode},
-			</if>
-			<if test="dstPath != null and dstPath != ''">
-				#{dstPath},
-			</if>
-			<if test="completeStatus != null and completeStatus != ''">
-				#{completeStatus},
-			</if>
-			<if test="rate > 0">
-				#{rate}
-			</if>
-			<if test="lastTime != null and lastTime != ''">
-				#{lastTime},
-			</if>
-			<if test="fkid > 0 ">
-				#{fkid),
-			</if>
-		</trim>
-		)
-	</insert>
-	
-	<select id="insertBatch" parameterType="java.util.List">
-	    INSERT INTO move_data_tmp ( <include refid="Base_Column_List" /> ) 
-	    VALUES 
-	    <foreach collection="list" item="item" index="index" separator=",">
-	        (#{item.regionalismCode,jdbcType=VARCHAR},#{item.systemCode,jdbcType=INTEGER},#{item.dstPath,jdbcType=VARCHAR},#{item.lastTime,jdbcType=VARCHAR},#{item.fkid})
-	    </foreach>
-	</select> 
-	
-	<delete id="remove" parameterType="java.lang.Integer">
-		DELETE FROM
-			move_data_tmp 
-		WHERE
-			id = #{id}
-	</delete>
-<!-- 获取数据符合筛选条件的总记录条数 -->
-	<!-- 
-	<select id="getLimitedDataCount" resultType="java.lang.Integer"
-		parameterType="PagerOptions">
-		SELECT COUNT(id) FROM move_data_tmp
-		<if test="PagerOptions!=null">
-			<where>
-				<include refid="conditionsFilters" />
-			</where>
-		</if>
-
-	</select>
-
-	获取数据查询的起始di
-	<select id="getLimitedBeginId" resultType="java.lang.Integer"
-		parameterType="PagerOptions">
-		SELECT MAX(idx) FROM (SELECT id idx FROM move_data_tmp
-		ORDER BY id LIMIT 0,#{PagerOptions.totalLimit}) AS TEMP
-	</select> -->
-
+<?xml version="1.0" encoding="UTF-8" ?>    
+<!DOCTYPE mapper    
+PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"    
+"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+
+<mapper namespace="com.platform.dao.DataInfoMoveTmpDao">
+	<resultMap id="getEntityByText" type="com.platform.entities.DataInfoEntityMoveTmp">
+		<id property="id" column="id" javaType="int" jdbcType="INTEGER" />
+		<result property="regionalismCode" column="regionalism_code"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="cityName" column="city_name" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="districtName" column="district_name"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="systemCode" column="system_code" javaType="int"
+			jdbcType="INTEGER" />
+		<result property="systemName" column="system_name" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="dataType" column="data_type" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="dataVersion" column="data_version" javaType="int"
+			jdbcType="INTEGER" />
+		<result property="submittedBatch" column="submitted_batch"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="dataPath" column="data_path" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="charset" column="data_charset" javaType="string"
+			jdbcType="VARCHAR" />
+		<result property="collectingTime" column="collection_time"
+			javaType="string" jdbcType="DATE" />
+		<result property="collectorContacts" column="collector_contacts"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="collectorName" column="collector_name"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="year" column="data_year" javaType="string"
+			jdbcType="VARCHAR" />
+			
+		<result property="dstPath" column="dst_path" javaType="string"
+		jdbcType="VARCHAR" />
+		<result property="completeStatus" column="complete_status" javaType="string"
+		jdbcType="VARCHAR" />
+		<result property="rate" column="rate" javaType="int"
+		jdbcType="INTEGER" />
+		<result property="lastTime" column="lasttime"
+			javaType="string" jdbcType="VARCHAR" />
+		<result property="fkid" column="fkid" javaType="int" jdbcType="INTEGER" />
+		<result property="dstVolumeIp" column="dst_volume_ip" jdbcType="VARCHAR" />
+		<result property="dstVolumePath" column="dst_volume_ip" jdbcType="VARCHAR" />
+	</resultMap>
+	
+	<sql id="Base_Column_List">
+		regionalism_code,system_code,dst_path,lasttime,fkid
+	</sql>
+	
+	<!-- 获取数据全部记录信息 -->
+	<select id="findAll" resultType="com.platform.entities.DataInfoEntityMoveTmp">
+		SELECT
+		a.id id,a.regionalism_code regionalismCode,a.dst_path dstPath,a.complete_status completeStatus,
+		a.rate rate, a.lasttime lastTime, a.system_code systemCode,a.dst_volume_ip dstVolumeIp,a.dst_volume_path dstVolumePath,
+		b.city_name cityName,b.district_name districtName,b.system_name systemName,b.data_type dataType,
+		b.data_version dataVersion,b.submitted_batch submittedBatch,b.data_path dataPath,b.data_charset charset,
+		b.collection_time collectingTime,b.collector_name collectorName,b.collector_contacts collectorContacts,
+		b.data_year year,b.extract_status extractStatus,b.start_year startYear,b.end_year endYear,
+		b.volume_ip volumeIp,b.volume_path volumePath
+		FROM 
+		move_data_tmp a LEFT JOIN data_details b 
+		ON a.system_code = b.system_code AND a.regionalism_code = b.regionalism_code AND a.fkid = b.id
+		ORDER BY a.id
+	</select>
+	
+	<update id="update" parameterType="com.platform.entities.DataInfoEntityMoveTmp">
+		UPDATE
+		move_data_tmp
+		<set >
+			<trim suffixOverrides=",">
+				<if test="dstPath != null and dstPath != ''">
+					dst_path= #{dstPath},
+				</if>
+				<if test="completeStatus != null and completeStatus != ''">
+					complete_status= #{completeStatus},
+				</if>
+				<if test="rate > 0">
+					rate= #{rate},
+				</if>
+				<if test="lastTime != null and lastTime != ''">
+					lasttime= #{lastTime},
+				</if>
+			</trim>
+		</set>
+		<where>
+			id = #{id}
+		</where>
+	</update>
+	
+	<insert id="save" parameterType="com.platform.entities.DataInfoEntityMoveTmp">
+		INSERT INTO
+		move_data_tmp(
+		<trim suffixOverrides=",">
+			<if test="id > 0">
+				id,
+			</if>
+			<if test="regionalismCode != null and regionalismCode != ''">
+				regionalism_code,
+			</if>
+			<if test="systemCode != null">
+				system_code,
+			</if>
+			<if test="dstPath != null and dstPath != ''">
+				dst_path,
+			</if>
+			<if test="completeStatus != null and completeStatus != ''">
+				complete_status,
+			</if>
+			<if test="rate > 0">
+				rate,
+			</if>
+			<if test="lastTime != null and lastTime != ''">
+				lasttime,
+			</if>
+			<if test="fkid > 0 ">
+				fkid,
+			</if>
+		</trim>
+		)
+		VALUES(
+		<trim suffixOverrides=",">
+			<if test="id > 0">
+				id,
+			</if>
+			<if test="regionalismCode != null and regionalismCode != ''">
+				#{regionalismCode},
+			</if>
+			<if test="systemCode != null and systemCode != ''">
+				#{systemCode},
+			</if>
+			<if test="dstPath != null and dstPath != ''">
+				#{dstPath},
+			</if>
+			<if test="completeStatus != null and completeStatus != ''">
+				#{completeStatus},
+			</if>
+			<if test="rate > 0">
+				#{rate}
+			</if>
+			<if test="lastTime != null and lastTime != ''">
+				#{lastTime},
+			</if>
+			<if test="fkid > 0 ">
+				#{fkid),
+			</if>
+		</trim>
+		)
+	</insert>
+	
+	<select id="insertBatch" parameterType="java.util.List">
+	    INSERT INTO move_data_tmp ( <include refid="Base_Column_List" /> ) 
+	    VALUES 
+	    <foreach collection="list" item="item" index="index" separator=",">
+	        (#{item.regionalismCode,jdbcType=VARCHAR},#{item.systemCode,jdbcType=INTEGER},#{item.dstPath,jdbcType=VARCHAR},#{item.lastTime,jdbcType=VARCHAR},#{item.fkid})
+	    </foreach>
+	</select> 
+	
+	<delete id="remove" parameterType="java.lang.Integer">
+		DELETE FROM
+			move_data_tmp 
+		WHERE
+			id = #{id}
+	</delete>
+<!-- 获取数据符合筛选条件的总记录条数 -->
+	<!-- 
+	<select id="getLimitedDataCount" resultType="java.lang.Integer"
+		parameterType="PagerOptions">
+		SELECT COUNT(id) FROM move_data_tmp
+		<if test="PagerOptions!=null">
+			<where>
+				<include refid="conditionsFilters" />
+			</where>
+		</if>
+
+	</select>
+
+	获取数据查询的起始di
+	<select id="getLimitedBeginId" resultType="java.lang.Integer"
+		parameterType="PagerOptions">
+		SELECT MAX(idx) FROM (SELECT id idx FROM move_data_tmp
+		ORDER BY id LIMIT 0,#{PagerOptions.totalLimit}) AS TEMP
+	</select> -->
+
 </mapper>  
\ No newline at end of file
diff --git a/src/com/platform/controller/DataModelController.java b/src/com/platform/controller/DataModelController.java
index b4c005b2..ff0b7a93 100644
--- a/src/com/platform/controller/DataModelController.java
+++ b/src/com/platform/controller/DataModelController.java
@@ -1,314 +1,332 @@
-package com.platform.controller;
-
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import net.sf.json.JSONObject;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.base.BaseController;
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.DataInfoEntityMoveTmp;
-import com.platform.entities.FolderNode;
-import com.platform.entities.GatherOracleInfo;
-import com.platform.entities.PagerOptions;
-import com.platform.entities.VolumeEntity;
-import com.platform.service.DataInfoService;
-import com.platform.service.ICodeService;
-import com.platform.service.IGfsService;
-import com.platform.service.IMoveDataService;
-import com.platform.service.IMySqlService;
-import com.platform.service.IOracleExtractService;
-import com.platform.service.OracleStatusService;
-import com.platform.utils.Bean2MapUtils;
-import com.platform.utils.Configs;
-import com.platform.utils.UtilsHelper;
-
-@Controller
-public class DataModelController extends BaseController{
-	
-	public static Logger log = Logger.getLogger(DataModelController.class);
-	
-	@Resource(name = "dataInfoService")
-	private DataInfoService dfs;
-	
-	@Resource(name = "gfsService")
-	private IGfsService gfsService;
-	
-	@Resource(name = "mySqlService")
-	private IMySqlService mySqlService;
-	
-	@Resource(name = "OracleExtract")
-	private IOracleExtractService OracleExtract;
-	
-	@Resource(name = "moveDataService")
-	private IMoveDataService moveDataService;
-	
-	@Resource(name = "codeService")
-	private ICodeService codeService;
-	
-	public void setDfsImp(DataInfoService dfs) {
-		this.dfs = dfs;
-	}
-
-	@RequestMapping("/data.json")
-	@ResponseBody
-	public ModelMap getAllDataToJson(HttpServletRequest res,
-			HttpServletResponse req) throws UnsupportedEncodingException {
-		res.setCharacterEncoding("UTF-8");
-		Map<String, String[]> paramMap = res.getParameterMap();
-		Set<String> keySet = paramMap.keySet();
-		Map<String, String> params = new HashMap<String, String>();
-		StringBuffer sb = new StringBuffer().append("当前的请求参数:{");
-		for (String str : keySet) {
-			String value = paramMap.get(str)[0];
-			if (StringUtils.isNotEmpty(value)) {
-				params.put(str, value);
-				sb.append(str).append(":").append(value).append(",");
-			} else {
-				sb.append(str).append(":").append("null").append(",");
-			}
-		}
-		Configs.CONSOLE_LOGGER.info(sb.deleteCharAt(sb.length() - 1)
-				.append("}").toString());
-		PagerOptions pagerOptions = (PagerOptions) UtilsHelper
-				.newObjAndSetAttrsByClass(PagerOptions.class, params);
-		
-		return dfs.getPagerTableData(pagerOptions);
-	}
-
-	@RequestMapping(value="/delete/data", method= RequestMethod.POST)
-	public void deleteData(HttpServletRequest res, HttpServletResponse req) throws Exception {
-		res.setCharacterEncoding("UTF-8");
-		Map<String, String[]> paramMap = res.getParameterMap();
-		String[] data = paramMap.get("data");
-		dfs.deleteData(data);
-	}
-
-	@RequestMapping("/connectOracle")
-	public void connectOracle(HttpServletRequest res, HttpServletResponse req) throws UnsupportedEncodingException {
-		res.setCharacterEncoding("UTF-8");
-		Map<String, String[]> paramMap = res.getParameterMap();
-		String[] oraclesName = paramMap.get("oracleName");
-		if (oraclesName != null)
-			for (String rcName : oraclesName) {
-				Configs.CONSOLE_LOGGER.info("连接成功\t" + rcName);
-				new OracleStatusService().connectToOracle(rcName);
-			}
-	}
-
-	@RequestMapping("/cancelOracleConection")
-	public void cancelOracleConnection(HttpServletRequest res,
-			HttpServletResponse req) throws UnsupportedEncodingException {
-		res.setCharacterEncoding("UTF-8");
-		Map<String, String[]> paramMap = res.getParameterMap();
-		String[] oraclesName = paramMap.get("oracleName");
-		String operate = paramMap.get("operation")[0];
-		if (null != oraclesName) {
-			for (String rcName : oraclesName) {
-				Configs.CONSOLE_LOGGER.info("取消连接:\t" + rcName);
-				new OracleStatusService().cancelToOracle(rcName, operate);
-			}
-		}
-	}
-
-	@RequestMapping(value="/oracle/{name}/extract", method= RequestMethod.POST)
-	public void oracleExtract(HttpServletRequest res,
-			HttpServletResponse req,@PathVariable String name) throws Exception {
-		res.setCharacterEncoding("UTF-8");
-		System.out.println("------extract-------");
-		System.out.println(name);
-		Map<String, String[]> paramMap = res.getParameterMap();
-		//汇总库 对象信息--带有tableName-
-		String[] nodes = paramMap.get("target");
-		Map map = null;
-		for (String string : nodes) {
-			JSONObject jsonobject = JSONObject.fromObject(string);
-			map = jsonobject;
-			System.out.println(map);
-		}
-		
-		// 采集库对象--(多个采集库抽取到1个汇总库的1个tableName下)
-		String[] inneed = paramMap.get("inneed");
-		List<Map<String, String>> colleclist = new ArrayList<Map<String,String>>();
-		for (String string : nodes) {
-			JSONObject jsonobject = JSONObject.fromObject(string);
-			 Map inneedMap = jsonobject;
-			colleclist.add(inneedMap);
-		}
-		OracleExtract.extractOracle(name, colleclist, map);
-		
-	}
-//	public void oracleExtract(HttpServletRequest res,
-//			HttpServletResponse req, String name, @RequestBody GatherOracleInfo gather, @RequestBody List<OracleConnectorParams> collectOracles)
-//					throws Exception {
-////		res.setCharacterEncoding("UTF-8");
-//		log.debug("------extract-------");
-////		Map<String, String[]> paramMap = res.getParameterMap();
-////		log.debug(paramMap);
-////		//汇总库 对象信息--带有tableName-
-////		String[] nodes = paramMap.get("target");
-////		Map map = null;
-////		for (String string : nodes) {
-////			JSONObject jsonobject = JSONObject.fromObject(string);
-////			map = jsonobject;
-////			System.out.println(map);
-////		}
-////		
-////		// 采集库对象--(多个采集库抽取到1个汇总库的1个tableName下)
-////		String[] inneed = paramMap.get("inneed");
-////		List<Map<String, String>> colleclist = new ArrayList<Map<String,String>>();
-////		for (String string : nodes) {
-////			JSONObject jsonobject = JSONObject.fromObject(string);
-////			 Map inneedMap = jsonobject;
-////			colleclist.add(inneedMap);
-////		}
-//		OracleExtract.extractOracle(name, collectOracles, gather);
-//	}
-
-	@RequestMapping(value="/volume/list", method= RequestMethod.POST)
-	@ResponseBody
-	public List<VolumeEntity> volumeList() throws Exception {
-		log.debug("-----/volume/list------");
-		List<VolumeEntity> result = gfsService.getAllVolumes();
-		return result;
-	}
-	
-	@RequestMapping(value = "/volume/{name}/move", method= RequestMethod.POST)
-	public void volumeMove(HttpServletRequest res, HttpServletResponse req,@PathVariable String name, 
-			FolderNode selectNode, DataInfoEntity selectItems) throws Exception {
-		res.setCharacterEncoding("UTF-8");
-		System.out.println("get Request");
-		Map<String, String[]> paramMap = res.getParameterMap();
-//		System.out.println(paramMap);
-		String[] nodes = paramMap.get("selectNode");
-		Map map = null;
-		for (String string : nodes) {
-			System.out.println(string);
-			JSONObject jsonobject = JSONObject.fromObject(string);
-			map = jsonobject;
-		}
-		String dstVolume = (String) map.get("volume");
-		
-		List<String> listItemPath = new ArrayList<String>();
-		String[] items = paramMap.get("selectItems");
-		System.out.println("selectItems");
-		List<DataInfoEntity> datas = new ArrayList<DataInfoEntity>();
-		List<String> srcVolumes = new ArrayList<String>();
-		for (String string : items) {
-			System.out.println(string);
-			JSONObject jsobj = JSONObject.fromObject(string);
-			Map itemmap = jsobj;
-			DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap(DataInfoEntity.class, itemmap);
-			datas.add(data);
-		}
-		System.out.println("------/volume/{name}/move--------");
-		if (datas.size() >0) {
-			moveDataService.moveData(datas, (String)map.get("path"));
-		}
-	}
-//	public Object volumeMove(HttpServletRequest res, HttpServletResponse req, String name, 
-//			@RequestBody FolderNode selectNode, @RequestBody List<DataInfoEntity> selectItems) throws Exception {
-//		log.debug("-----/volume/{name}/move------");
-////		Map<String, String[]> paramMap = res.getParameterMap();
-////		System.out.println(paramMap);
-//		Map<String, String[]> paramMap = res.getParameterMap();
-//		log.debug(paramMap);
-//		//汇总库 对象信息--带有tableName-
-//		String[] nodes = (String[]) paramMap.get("selectNode");
-//		Map map = null;
-//		JSONObject jsonobject = JSONObject.fromObject(string);
-//		map = jsonobject;
-//		
-//		
-//		log.debug(selectItems);
-//		log.debug(selectNode);
-//		boolean result = false ;
-//		if (selectItems.size() >0) {
-//			result = moveDataService.moveData(selectItems, selectNode.getPath());
-//		}
-//		return result;
-//	}
-	
-	@RequestMapping(value="/oracle/list", method= RequestMethod.POST)
-	@ResponseBody
-	public List<GatherOracleInfo> oracleList() throws Exception {
-		log.debug("----------getOracleInfo-----------------------");
-		List<GatherOracleInfo> result = mySqlService.findAllMySql(); 
-		return result;
-	}
-	
-	@RequestMapping(value="/oracle/{id}/delete", method= RequestMethod.POST)
-	public void oracleDelete(@PathVariable String id) throws Exception {
-		log.debug("----------deleteOracleInfo----------------");
-		Integer num = Integer.valueOf(id);
-		mySqlService.deleteMySql(num); 
-	}
-	
-	@RequestMapping(value="/oracle/{id}/insert", method= RequestMethod.POST)
-	@ResponseBody
-	public void oracleInsert(@PathVariable String id, @RequestBody GatherOracleInfo oracle) throws Exception {
-		log.debug("----------insertOracleInfo----------------");
-		oracle.setId(Integer.valueOf(id));
-		mySqlService.insertOracle(oracle);
-	}
-	
-	@RequestMapping(value="/oracle/{id}/update", method= RequestMethod.POST)
-	@ResponseBody
-	public void oracleUpdate(@PathVariable("id") String id, @RequestBody GatherOracleInfo oracle) throws Exception {
-		log.debug("----------updateOracleInfo-----------------------");
-		log.debug(oracle);
-		mySqlService.updateOracle(oracle); 
-	}
-	
-	@RequestMapping(value="/task/transfer/list", method= RequestMethod.POST)
-	@ResponseBody
-	public Object taskTransferList() throws Exception {
-		log.debug("----------/task/transfer/list-----------------------");
-		List<DataInfoEntityMoveTmp> result = moveDataService.findAll();
-		return result;
-	}
-	
-	@RequestMapping(value="/task/transfer/{id}/delete", method= RequestMethod.POST)
-	@ResponseBody
-	public Object taskTransferDelete(@PathVariable String id) throws Exception {
-		log.debug("----------/task/transfer/{id}/delete-----------------------");
-		DataInfoEntityMoveTmp move = new DataInfoEntityMoveTmp();
-		move.setId(Integer.valueOf(id));
-		int result = moveDataService.delete(move );
-		return result;
-	}
-	
-	@RequestMapping(value="/task/transfer/save", method= RequestMethod.POST)
-	@ResponseBody
-	public Object taskTransferSave(@RequestBody DataInfoEntity move) throws Exception {
-		log.debug("---------/task/transfer/save-----------------------");
-		int result = dfs.save(move);
-		return result;
-	}
-	
-	@RequestMapping(value="/code/list", method= RequestMethod.POST)
-	@ResponseBody
-	public Object findCodeList() throws Exception {
-		log.debug("---------/findSystemCode-----------------------");
-		Map<String, Object> result = codeService.findAll();
-		return result;
-	}
-}
+package com.platform.controller;
+
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import net.sf.json.JSONObject;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.base.BaseController;
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.DataInfoEntityMoveTmp;
+import com.platform.entities.FolderNode;
+import com.platform.entities.GatherOracleInfo;
+import com.platform.entities.PagerOptions;
+import com.platform.entities.VolumeEntity;
+import com.platform.entities.volumeMoveForm;
+import com.platform.service.DataInfoService;
+import com.platform.service.ICodeService;
+import com.platform.service.IGfsService;
+import com.platform.service.IMoveDataService;
+import com.platform.service.IMySqlService;
+import com.platform.service.IOracleExtractService;
+import com.platform.service.OracleStatusService;
+import com.platform.utils.Bean2MapUtils;
+import com.platform.utils.Configs;
+import com.platform.utils.UtilsHelper;
+
+@Controller
+public class DataModelController extends BaseController{
+	
+	public static Logger log = Logger.getLogger(DataModelController.class);
+	
+	@Resource(name = "dataInfoService")
+	private DataInfoService dfs;
+	
+	@Resource(name = "gfsService")
+	private IGfsService gfsService;
+	
+	@Resource(name = "mySqlService")
+	private IMySqlService mySqlService;
+	
+	@Resource(name = "OracleExtract")
+	private IOracleExtractService OracleExtract;
+	
+	@Resource(name = "moveDataService")
+	private IMoveDataService moveDataService;
+	
+	@Resource(name = "codeService")
+	private ICodeService codeService;
+	
+	public void setDfsImp(DataInfoService dfs) {
+		this.dfs = dfs;
+	}
+
+	@RequestMapping("/data.json")
+	@ResponseBody
+	public ModelMap getAllDataToJson(HttpServletRequest res,
+			HttpServletResponse req) throws UnsupportedEncodingException {
+		res.setCharacterEncoding("UTF-8");
+		Map<String, String[]> paramMap = res.getParameterMap();
+		Set<String> keySet = paramMap.keySet();
+		Map<String, String> params = new HashMap<String, String>();
+		StringBuffer sb = new StringBuffer().append("当前的请求参数:{");
+		for (String str : keySet) {
+			String value = paramMap.get(str)[0];
+			if (StringUtils.isNotEmpty(value)) {
+				params.put(str, value);
+				sb.append(str).append(":").append(value).append(",");
+			} else {
+				sb.append(str).append(":").append("null").append(",");
+			}
+		}
+		Configs.CONSOLE_LOGGER.info(sb.deleteCharAt(sb.length() - 1)
+				.append("}").toString());
+		PagerOptions pagerOptions = (PagerOptions) UtilsHelper
+				.newObjAndSetAttrsByClass(PagerOptions.class, params);
+		
+		return dfs.getPagerTableData(pagerOptions);
+	}
+
+	@RequestMapping(value="/delete/data", method= RequestMethod.POST)
+	public void deleteData(HttpServletRequest res, HttpServletResponse req) throws Exception {
+		res.setCharacterEncoding("UTF-8");
+		Map<String, String[]> paramMap = res.getParameterMap();
+		String[] data = paramMap.get("data");
+		dfs.deleteData(data);
+		req.setStatus(200);
+	}
+
+	@RequestMapping("/connectOracle")
+	public void connectOracle(HttpServletRequest res, HttpServletResponse req) throws UnsupportedEncodingException {
+		res.setCharacterEncoding("UTF-8");
+		Map<String, String[]> paramMap = res.getParameterMap();
+		String[] oraclesName = paramMap.get("oracleName");
+		if (oraclesName != null)
+			for (String rcName : oraclesName) {
+				Configs.CONSOLE_LOGGER.info("连接成功\t" + rcName);
+				new OracleStatusService().connectToOracle(rcName);
+			}
+		req.setStatus(200);
+	}
+
+	@RequestMapping("/cancelOracleConection")
+	public void cancelOracleConnection(HttpServletRequest res,
+			HttpServletResponse req) throws UnsupportedEncodingException {
+		res.setCharacterEncoding("UTF-8");
+		Map<String, String[]> paramMap = res.getParameterMap();
+		String[] oraclesName = paramMap.get("oracleName");
+		String operate = paramMap.get("operation")[0];
+		if (null != oraclesName) {
+			for (String rcName : oraclesName) {
+				Configs.CONSOLE_LOGGER.info("取消连接:\t" + rcName);
+				new OracleStatusService().cancelToOracle(rcName, operate);
+			}
+		}
+		req.setStatus(200);
+	}
+
+	@RequestMapping(value="/oracle/{name}/extract", method= RequestMethod.POST)
+	public void oracleExtract(HttpServletRequest res,
+			HttpServletResponse req,@PathVariable String name) throws Exception {
+		res.setCharacterEncoding("UTF-8");
+		System.out.println("------extract-------");
+		System.out.println(name);
+		Map<String, String[]> paramMap = res.getParameterMap();
+		//汇总库 对象信息--带有tableName-
+		String[] nodes = paramMap.get("target");
+		Map map = null;
+		for (String string : nodes) {
+			JSONObject jsonobject = JSONObject.fromObject(string);
+			map = jsonobject;
+			System.out.println(map);
+		}
+		
+		// 采集库对象--(多个采集库抽取到1个汇总库的1个tableName下)
+		String[] inneed = paramMap.get("inneed");
+		List<Map<String, String>> colleclist = new ArrayList<Map<String,String>>();
+		for (String string : nodes) {
+			JSONObject jsonobject = JSONObject.fromObject(string);
+			 Map inneedMap = jsonobject;
+			colleclist.add(inneedMap);
+		}
+		OracleExtract.extractOracle(name, colleclist, map);
+		req.setStatus(200);
+	}
+//	public void oracleExtract(HttpServletRequest res,
+//			HttpServletResponse req, String name, @RequestBody GatherOracleInfo gather, @RequestBody List<OracleConnectorParams> collectOracles)
+//					throws Exception {
+////		res.setCharacterEncoding("UTF-8");
+//		log.debug("------extract-------");
+////		Map<String, String[]> paramMap = res.getParameterMap();
+////		log.debug(paramMap);
+////		//汇总库 对象信息--带有tableName-
+////		String[] nodes = paramMap.get("target");
+////		Map map = null;
+////		for (String string : nodes) {
+////			JSONObject jsonobject = JSONObject.fromObject(string);
+////			map = jsonobject;
+////			System.out.println(map);
+////		}
+////		
+////		// 采集库对象--(多个采集库抽取到1个汇总库的1个tableName下)
+////		String[] inneed = paramMap.get("inneed");
+////		List<Map<String, String>> colleclist = new ArrayList<Map<String,String>>();
+////		for (String string : nodes) {
+////			JSONObject jsonobject = JSONObject.fromObject(string);
+////			 Map inneedMap = jsonobject;
+////			colleclist.add(inneedMap);
+////		}
+//		OracleExtract.extractOracle(name, collectOracles, gather);
+//	}
+
+	@RequestMapping(value="/volume/list", method= RequestMethod.POST)
+	@ResponseBody
+	public List<VolumeEntity> volumeList() throws Exception {
+		log.debug("-----/volume/list------");
+		List<VolumeEntity> result = gfsService.getAllVolumes();
+		return result;
+	}
+	
+	@RequestMapping(value = "/volume/{name}/move", method= RequestMethod.POST)
+	@ResponseBody
+	public void volumeMove(HttpServletRequest res, HttpServletResponse req,@RequestBody volumeMoveForm form) throws Exception {
+//		res.setCharacterEncoding("UTF-8");
+//		System.out.println("get Request");
+//		Map<String, String[]> paramMap = res.getParameterMap();
+////		System.out.println(paramMap);
+//		String[] nodes = paramMap.get("selectNode");
+//		Map map = null;
+//		for (String string : nodes) {
+//			System.out.println(string);
+//			JSONObject jsonobject = JSONObject.fromObject(string);
+//			map = jsonobject;
+//		}
+//		String dstVolume = (String) map.get("volume");
+		
+//		List<String> listItemPath = new ArrayList<String>();
+//		String[] items = paramMap.get("selectItems");
+//		System.out.println("selectItems");
+		List<DataInfoEntity> datas = new ArrayList<DataInfoEntity>();
+//		List<String> srcVolumes = new ArrayList<String>();
+//		for (String string : items) {
+//			System.out.println(string);
+//			JSONObject jsobj = JSONObject.fromObject(string);
+//			Map itemmap = jsobj;
+//			DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap(DataInfoEntity.class, itemmap);
+//			datas.add(data);
+//		}
+		List<DataInfoEntity> selectItems = form.getSelectItems();
+		if (null == selectItems) {
+			req.setStatus(200);
+			return;
+		}
+		datas.addAll(selectItems);
+		
+		System.out.println("------/volume/{name}/move--------");
+		if (datas.size() >0) {
+			moveDataService.moveData(datas, form.getSelectNode());
+		}
+		req.setStatus(200);
+	}
+//	public Object volumeMove(HttpServletRequest res, HttpServletResponse req, String name, 
+//			@RequestBody FolderNode selectNode, @RequestBody List<DataInfoEntity> selectItems) throws Exception {
+//		log.debug("-----/volume/{name}/move------");
+////		Map<String, String[]> paramMap = res.getParameterMap();
+////		System.out.println(paramMap);
+//		Map<String, String[]> paramMap = res.getParameterMap();
+//		log.debug(paramMap);
+//		//汇总库 对象信息--带有tableName-
+//		String[] nodes = (String[]) paramMap.get("selectNode");
+//		Map map = null;
+//		JSONObject jsonobject = JSONObject.fromObject(string);
+//		map = jsonobject;
+//		
+//		
+//		log.debug(selectItems);
+//		log.debug(selectNode);
+//		boolean result = false ;
+//		if (selectItems.size() >0) {
+//			result = moveDataService.moveData(selectItems, selectNode.getPath());
+//		}
+//		return result;
+//	}
+	
+	@RequestMapping(value="/oracle/list", method= RequestMethod.POST)
+	@ResponseBody
+	public List<GatherOracleInfo> oracleList() throws Exception {
+		log.debug("----------getOracleInfo-----------------------");
+		List<GatherOracleInfo> result = mySqlService.findAllMySql(); 
+		return result;
+	}
+	
+	@RequestMapping(value="/oracle/{id}/delete", method= RequestMethod.POST)
+	public void oracleDelete(HttpServletRequest req, HttpServletResponse res, @PathVariable String id) throws Exception {
+		log.debug("----------deleteOracleInfo----------------");
+		Integer num = Integer.valueOf(id);
+		Integer result = mySqlService.deleteMySql(num); 
+		log.info("oracleDelete : " + result);
+		res.setStatus(200);
+	}
+	
+	@RequestMapping(value="/oracle/{id}/insert", method= RequestMethod.POST)
+	@ResponseBody
+	public void oracleInsert(HttpServletRequest res, HttpServletResponse req, @PathVariable String id, @RequestBody GatherOracleInfo oracle) throws Exception {
+		log.debug("----------insertOracleInfo----------------");
+		oracle.setId(Integer.valueOf(id));
+		mySqlService.insertOracle(oracle);
+		req.setStatus(200);
+	}
+	
+	@RequestMapping(value="/oracle/{id}/update", method= RequestMethod.POST)
+	@ResponseBody
+	public void oracleUpdate(HttpServletRequest res, HttpServletResponse req, @PathVariable("id") String id, @RequestBody GatherOracleInfo oracle) throws Exception {
+		log.debug("----------updateOracleInfo-----------------------");
+		log.debug(oracle);
+		mySqlService.updateOracle(oracle); 
+		req.setStatus(200);
+	}
+	
+	@RequestMapping(value="/task/transfer/list", method= RequestMethod.POST)
+	@ResponseBody
+	public Object taskTransferList() throws Exception {
+		log.debug("----------/task/transfer/list-----------------------");
+		List<DataInfoEntityMoveTmp> result = moveDataService.findAll();
+		return result;
+	}
+	
+	@RequestMapping(value="/task/transfer/{id}/delete", method= RequestMethod.POST)
+	@ResponseBody
+	public Object taskTransferDelete(HttpServletRequest res, HttpServletResponse req, @PathVariable String id) throws Exception {
+		log.debug("----------/task/transfer/{id}/delete-----------------------");
+		DataInfoEntityMoveTmp move = new DataInfoEntityMoveTmp();
+		move.setId(Integer.valueOf(id));
+		int result = moveDataService.delete(move );
+		req.setStatus(200);
+		return result;
+	}
+	
+	@RequestMapping(value="/task/transfer/save", method= RequestMethod.POST)
+	@ResponseBody
+	public Object taskTransferSave(HttpServletRequest res, HttpServletResponse req, @RequestBody DataInfoEntity move) throws Exception {
+		log.debug("---------/task/transfer/save-----------------------");
+		int result = dfs.save(move);
+		req.setStatus(200);
+		return result;
+	}
+	
+	@RequestMapping(value="/code/list", method= RequestMethod.POST)
+	@ResponseBody
+	public Object findCodeList() throws Exception {
+		log.debug("---------/findSystemCode-----------------------");
+		Map<String, Object> result = codeService.findAll();
+		return result;
+	}
+}
diff --git a/src/com/platform/controller/DefaultController.java b/src/com/platform/controller/DefaultController.java
index 631e6b77..7fb907c8 100644
--- a/src/com/platform/controller/DefaultController.java
+++ b/src/com/platform/controller/DefaultController.java
@@ -1,32 +1,32 @@
-
-package com.platform.controller;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.servlet.ModelAndView;
-
-import com.platform.utils.Configs;
-
-@Controller
-public class DefaultController {
-	
-	@RequestMapping("/")
-	public ModelAndView defaultHandler(HttpServletRequest req, HttpServletResponse res){
-		//处理不匹配的请求		
-		System.out.println("index");		
-		return new ModelAndView("index");
-	}
-	
-	@RequestMapping("/test")
-	public ModelMap test(HttpServletRequest req, HttpServletResponse res){
-		//System.out.println(Class.class.getClass().getResource("/").getPath());
-		System.out.println(Configs.EXTRACT_LOG_LOCALTION);
-		return new ModelMap();
-	}
-	
-}
-
+
+package com.platform.controller;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.platform.utils.Configs;
+
+@Controller
+public class DefaultController {
+	
+	@RequestMapping("/")
+	public ModelAndView defaultHandler(HttpServletRequest req, HttpServletResponse res){
+		//处理不匹配的请求		
+		System.out.println("index");		
+		return new ModelAndView("index");
+	}
+	
+	@RequestMapping("/test")
+	public ModelMap test(HttpServletRequest req, HttpServletResponse res){
+		//System.out.println(Class.class.getClass().getResource("/").getPath());
+		System.out.println(Configs.EXTRACT_LOG_LOCALTION);
+		return new ModelMap();
+	}
+	
+}
+
diff --git a/src/com/platform/controller/FolderController.java b/src/com/platform/controller/FolderController.java
index 04254ffb..8bea311e 100644
--- a/src/com/platform/controller/FolderController.java
+++ b/src/com/platform/controller/FolderController.java
@@ -1,114 +1,114 @@
-
-package com.platform.controller;
-
-
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import oracle.sql.DATE;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-
-
-
-import com.base.BaseController;
-import com.base.CustomException;
-import com.platform.entities.GfsFolderEntity;
-
-
-import com.platform.entities.VolumeEntity;
-import com.platform.glusterfs.VolumeInfo;
-
-import com.platform.entities.VolumeEntity;
-import com.platform.glusterfs.VolumeInfo;
-
-import com.platform.service.IGfsService;
-
-
-/**
- * <一句话功能简述>
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-@Controller
-
-@RequestMapping("")
-
-public class FolderController extends BaseController {
-	
-	@Resource(name = "gfsService")
-	private IGfsService gfsService;
-	
-
-
-
-	@RequestMapping(value="/getAllSubPathByPath", method= RequestMethod.POST)
-
-	public Object getAllSubPathByPath(String path) throws Exception {
-		System.out.println(path);
-		Object result = null;
-		if (null != path && !"".equals(path)) {
-			System.out.println(path);
-			result = gfsService.getFolder(path);
-		}
-		return result;
-	}
-	
-
-	@RequestMapping("/copyFolder")
-	public Object copyFolder(String srcpath, String dstPath, String name) throws Exception {
-		// -1 :error; -2: the filename is not exists ;-3 :destFolderName ; 1: right 
-		int result = 0;
-//		int result = gfsService.copyFolder(srcpath, dstPath, name);
-		System.out.println(srcpath);
-		System.out.println(dstPath);
-		String obj = "right";
-		
-		if (1 != result) {
-			obj = "err";
-		}
-		return obj;
-	}
-
-//	/**
-//	 * <一句话功能简述> 查询集群中所有的 volume 及其 信息
-//	 * <功能详细描述>
-//	 * @return
-//	 * @throws Exception 
-//	 * @see [类、类#方法、类#成员]
-//	 */
-//	@RequestMapping(value="/volume/list", method= RequestMethod.POST)
-//	public Object getVolums() throws Exception{
-//		System.out.println("----------------------------------");
-//		long a = new Date().getTime();
-//		 List<VolumeEntity> result = gfsService.getAllVolumes();
-//		 System.out.println("----------------------------------");
-//		 System.out.println(new Date().getTime()-a);
-//		return result;
-//	}
-//	
-	/**
-	 * <一句话功能简述> 查询集群中所有的 volume 及其 信息
-	 * <功能详细描述>
-	 * @param volumeName "/home/gfs_ftp_point" "/home/v1_point"
-	 * @return 
-	 * @throws Exception 
-	 * @see [类、类#方法、类#成员]
-	 */
-	
-	@RequestMapping(value="/volume/findByName", method= RequestMethod.POST)
-	public Object getVolumByName(String volumeName) throws Exception{
-		VolumeEntity result = gfsService.getOneVolume(volumeName);
-		return result;
-
-	}
-	
-}
+
+package com.platform.controller;
+
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import oracle.sql.DATE;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+
+
+import com.base.BaseController;
+import com.base.CustomException;
+import com.platform.entities.GfsFolderEntity;
+
+
+import com.platform.entities.VolumeEntity;
+import com.platform.glusterfs.VolumeInfo;
+
+import com.platform.entities.VolumeEntity;
+import com.platform.glusterfs.VolumeInfo;
+
+import com.platform.service.IGfsService;
+
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+@Controller
+
+@RequestMapping("")
+
+public class FolderController extends BaseController {
+	
+	@Resource(name = "gfsService")
+	private IGfsService gfsService;
+	
+
+
+
+	@RequestMapping(value="/getAllSubPathByPath", method= RequestMethod.POST)
+
+	public Object getAllSubPathByPath(String path) throws Exception {
+		System.out.println(path);
+		Object result = null;
+		if (null != path && !"".equals(path)) {
+			System.out.println(path);
+			result = gfsService.getFolder(path);
+		}
+		return result;
+	}
+	
+
+	@RequestMapping("/copyFolder")
+	public Object copyFolder(String srcpath, String dstPath, String name) throws Exception {
+		// -1 :error; -2: the filename is not exists ;-3 :destFolderName ; 1: right 
+		int result = 0;
+//		int result = gfsService.copyFolder(srcpath, dstPath, name);
+		System.out.println(srcpath);
+		System.out.println(dstPath);
+		String obj = "right";
+		
+		if (1 != result) {
+			obj = "err";
+		}
+		return obj;
+	}
+
+//	/**
+//	 * <一句话功能简述> 查询集群中所有的 volume 及其 信息
+//	 * <功能详细描述>
+//	 * @return
+//	 * @throws Exception 
+//	 * @see [类、类#方法、类#成员]
+//	 */
+//	@RequestMapping(value="/volume/list", method= RequestMethod.POST)
+//	public Object getVolums() throws Exception{
+//		System.out.println("----------------------------------");
+//		long a = new Date().getTime();
+//		 List<VolumeEntity> result = gfsService.getAllVolumes();
+//		 System.out.println("----------------------------------");
+//		 System.out.println(new Date().getTime()-a);
+//		return result;
+//	}
+//	
+	/**
+	 * <一句话功能简述> 查询集群中所有的 volume 及其 信息
+	 * <功能详细描述>
+	 * @param volumeName "/home/gfs_ftp_point" "/home/v1_point"
+	 * @return 
+	 * @throws Exception 
+	 * @see [类、类#方法、类#成员]
+	 */
+	
+	@RequestMapping(value="/volume/findByName", method= RequestMethod.POST)
+	public Object getVolumByName(String volumeName) throws Exception{
+		VolumeEntity result = gfsService.getOneVolume(volumeName);
+		return result;
+
+	}
+	
+}
diff --git a/src/com/platform/controller/SetGlusterfsController.java b/src/com/platform/controller/SetGlusterfsController.java
index 60b776b0..78ce8915 100644
--- a/src/com/platform/controller/SetGlusterfsController.java
+++ b/src/com/platform/controller/SetGlusterfsController.java
@@ -1,52 +1,52 @@
-
-/**
- * 文件名   :   SetGlusterfs.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  liliy
- * 版本       :   <版本>
- * 修改时间:      2016年9月8日
- * 修改内容:      <修改内容>
- */
-package com.platform.controller;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-/**
-
- * <一句话功能简述>
-
-
- * <一句话功能简述>
-
- * <功能详细描述>
- * @author    liliy
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-@Controller
-public class SetGlusterfsController {
-
-	@RequestMapping("/tes")
-	public Object defaultHandler(HttpServletRequest req, HttpServletResponse request) {
-		//���?ƥ�������		
-		try {            
-           
-           System.out.println("fsdfds");
-            
-            return "listAll";
-        } catch (Exception e) {
-            e.printStackTrace();
-            
-            return "result";
-        }
-    
-
-	}
-
-}
+
+/**
+ * 文件名   :   SetGlusterfs.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  liliy
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月8日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.controller;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+
+ * <一句话功能简述>
+
+
+ * <一句话功能简述>
+
+ * <功能详细描述>
+ * @author    liliy
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+@Controller
+public class SetGlusterfsController {
+
+	@RequestMapping("/tes")
+	public Object defaultHandler(HttpServletRequest req, HttpServletResponse request) {
+		//���?ƥ�������		
+		try {            
+           
+           System.out.println("fsdfds");
+            
+            return "listAll";
+        } catch (Exception e) {
+            e.printStackTrace();
+            
+            return "result";
+        }
+    
+
+	}
+
+}
diff --git a/src/com/platform/controller/ShowGlusterfsController.java b/src/com/platform/controller/ShowGlusterfsController.java
index 7667bc2b..6fa3fadd 100644
--- a/src/com/platform/controller/ShowGlusterfsController.java
+++ b/src/com/platform/controller/ShowGlusterfsController.java
@@ -1,50 +1,50 @@
-
-/**
- * 文件名   :   ShowGlusterfsController.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  liliy
- * 版本       :   <版本>
- * 修改时间:      2016年9月8日
- * 修改内容:      <修改内容>
- */
-package com.platform.controller;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.platform.glusterfs.ClusterInfo;
-import com.platform.glusterfs.VolumeInfo;
-
-/**
- * <一句话功能简述>
-
- * <功能详细描述>
- * @author    liliy
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-@Controller
-public class ShowGlusterfsController {
-
-
-	/**
-	 * <一句话功能简述>
-
-	 * <功能详细描述>
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	@RequestMapping("/showPeerStatus")
-	public Map<String,String> showPeerStatus(){
-		Map<String, String> peer_status=new ClusterInfo().showClusterInfo();
-		return peer_status;
-	} 
-	
-	
-}
+
+/**
+ * 文件名   :   ShowGlusterfsController.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  liliy
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月8日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.controller;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.platform.glusterfs.ClusterInfo;
+import com.platform.glusterfs.VolumeInfo;
+
+/**
+ * <一句话功能简述>
+
+ * <功能详细描述>
+ * @author    liliy
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+@Controller
+public class ShowGlusterfsController {
+
+
+	/**
+	 * <一句话功能简述>
+
+	 * <功能详细描述>
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	@RequestMapping("/showPeerStatus")
+	public Map<String,String> showPeerStatus(){
+		Map<String, String> peer_status=new ClusterInfo().showClusterInfo();
+		return peer_status;
+	} 
+	
+	
+}
diff --git a/src/com/platform/controller/TaskModelController.java b/src/com/platform/controller/TaskModelController.java
index 25d51555..7a861661 100644
--- a/src/com/platform/controller/TaskModelController.java
+++ b/src/com/platform/controller/TaskModelController.java
@@ -1,28 +1,28 @@
-package com.platform.controller;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.base.BaseController;
-
-@Controller
-public class TaskModelController extends BaseController{
-
-	@RequestMapping("/task/transfer/list")
-	@ResponseBody
-	public List<Integer> getTransferTask(HttpServletRequest res, HttpServletResponse req) {		
-		List<Integer> list = new ArrayList<Integer>();
-		list.add(1);
-		list.add(2);
-		list.add(3);
-		list.add(4);
-		return list;
-	}
-}
+package com.platform.controller;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.base.BaseController;
+
+@Controller
+public class TaskModelController extends BaseController{
+
+	@RequestMapping("/task/transfer/list")
+	@ResponseBody
+	public List<Integer> getTransferTask(HttpServletRequest res, HttpServletResponse req) {		
+		List<Integer> list = new ArrayList<Integer>();
+		list.add(1);
+		list.add(2);
+		list.add(3);
+		list.add(4);
+		return list;
+	}
+}
diff --git a/src/com/platform/dao/DataInfoDao.java b/src/com/platform/dao/DataInfoDao.java
index 005e2bc3..5b9419b0 100644
--- a/src/com/platform/dao/DataInfoDao.java
+++ b/src/com/platform/dao/DataInfoDao.java
@@ -1,27 +1,27 @@
-package com.platform.dao;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.PagerOptions;
-
-@Repository(value = "dataInfoDao")
-public interface DataInfoDao {
-
-	int getLimitedDataCount(PagerOptions pagerOptions);
-
-	int getLimitedBeginId(PagerOptions pagerOptions);
-
-	List<DataInfoEntity> getLimitedDataInfoEntities(PagerOptions pagerOptions);
-
-	List<String> getIdIsExist(List<Integer> list)throws Exception;
-	
-	int removes(List<Integer> list)throws Exception;
-	
-	int save(DataInfoEntity data) throws Exception;
-
-}
+package com.platform.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.PagerOptions;
+
+@Repository(value = "dataInfoDao")
+public interface DataInfoDao {
+
+	int getLimitedDataCount(PagerOptions pagerOptions);
+
+	int getLimitedBeginId(PagerOptions pagerOptions);
+
+	List<DataInfoEntity> getLimitedDataInfoEntities(PagerOptions pagerOptions);
+
+	List<String> getIdIsExist(List<Integer> list)throws Exception;
+	
+	int removes(List<Integer> list)throws Exception;
+	
+	int save(DataInfoEntity data) throws Exception;
+
+}
diff --git a/src/com/platform/dao/DataInfoMoveTmpDao.java b/src/com/platform/dao/DataInfoMoveTmpDao.java
index 096d8938..3891c117 100644
--- a/src/com/platform/dao/DataInfoMoveTmpDao.java
+++ b/src/com/platform/dao/DataInfoMoveTmpDao.java
@@ -1,29 +1,29 @@
-package com.platform.dao;
-
-import java.util.List;
-
-import org.springframework.stereotype.Repository;
-
-import com.platform.entities.DataInfoEntityMoveTmp;
-
-/**
- * @author chen
- * 数据迁移状态 临时 存放 ,
- */
-@Repository(value = "dataInfoMoveTmpDao")
-public interface DataInfoMoveTmpDao {
-
-	/** 查
-	 * @return
-	 * @throws Exception
-	 */
-	List<DataInfoEntityMoveTmp> findAll() throws Exception;
-	
-	int update(DataInfoEntityMoveTmp data) throws Exception;
-	
-	int save(DataInfoEntityMoveTmp data) throws Exception;
-	
-	void insertBatch(List<DataInfoEntityMoveTmp> list) throws Exception;
-	
-	int remove(int id) throws Exception;
-}
+package com.platform.dao;
+
+import java.util.List;
+
+import org.springframework.stereotype.Repository;
+
+import com.platform.entities.DataInfoEntityMoveTmp;
+
+/**
+ * @author chen
+ * 数据迁移状态 临时 存放 ,
+ */
+@Repository(value = "dataInfoMoveTmpDao")
+public interface DataInfoMoveTmpDao {
+
+	/** 查
+	 * @return
+	 * @throws Exception
+	 */
+	List<DataInfoEntityMoveTmp> findAll() throws Exception;
+	
+	int update(DataInfoEntityMoveTmp data) throws Exception;
+	
+	int save(DataInfoEntityMoveTmp data) throws Exception;
+	
+	void insertBatch(List<DataInfoEntityMoveTmp> list) throws Exception;
+	
+	int remove(int id) throws Exception;
+}
diff --git a/src/com/platform/dao/EncodeInfoDao.java b/src/com/platform/dao/EncodeInfoDao.java
index a877f5f3..18fb399e 100644
--- a/src/com/platform/dao/EncodeInfoDao.java
+++ b/src/com/platform/dao/EncodeInfoDao.java
@@ -1,99 +1,99 @@
-package com.platform.dao;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Delete;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-import org.springframework.stereotype.Repository;
-
-import com.platform.entities.EncodedInfoEntity;
-
-/**
- * 数据库操作: 实现增、删、改、查
- * 
- * @author wuming
- * 
- */
-@Repository(value = "encodeInfoDao")
-public interface EncodeInfoDao {
-
-	/**
-	 * 获取查询表下的所有实体(行政区划/系统)信息
-	 * 
-	 * @param tableName
-	 *            查询的表名
-	 * @return 所有实体信息:名称和编码
-	 */
-	@Select("SELECT code, name FROM ${tableName}")
-	public List<EncodedInfoEntity> getAllEntityInfo(
-			@Param("tableName") String tableName);
-
-	/**
-	 * 根据实体(行政区划/系统)的名称查询编码
-	 * 
-	 * @param code
-	 *            实体编码
-	 * @param tableName
-	 *            查询的表名
-	 * @return 编码是主键,查询结果最多只有一条记录
-	 */
-	@Select("SELECT name FROM ${tableName} WHERE code = #{code}")
-	public String getEncodeNameByCode(@Param("code") String code,
-			@Param("tableName") String tableName);
-
-	/**
-	 * 根据实体(行政区划/系统)的编码查询名称
-	 * 
-	 * @param name
-	 *            实体名称
-	 * @param tableName
-	 *            查询的表名
-	 * @return 名称不是主键,查询结果可能会有多个
-	 */
-	@Select("SELECT code FROM ${tableName} WHERE name = #{name}")
-	public List<String> getEncodeCodeByName(@Param("name") String name,
-			@Param("tableName") String tableName);
-
-	/**
-	 * 根据实体(行政区划/系统)的编码,更新实体的名称
-	 * 
-	 * @param code
-	 *            系统编码
-	 * @param tableName
-	 *            查询的表名
-	 * @return
-	 */
-	@Update("UPDATE ${tableName} SET name = #{name} WHERE code = #{code}")
-	public int updateEncodeNameByCode(@Param("code") String code,
-			@Param("name") String name, @Param("tableName") String tableName);
-
-	/**
-	 * 向表中插入实体(行政区划/系统)信息
-	 * 
-	 * @param efe
-	 *            插入的实体信息
-	 * @param tableName
-	 *            表名
-	 * @return
-	 */
-	@Insert("INSERT INTO ${tableName} (code, name) VALUES (#{efe.code}, #{efe.name})")
-	public int insertEncodeEntity(@Param("efe") EncodedInfoEntity efe,
-			@Param("tableName") String tableName);
-
-	/**
-	 * 删除表中的实体(行政区划/系统)
-	 * 
-	 * @param code
-	 *            实体的编码
-	 * @param tableName
-	 *            表名
-	 * @return
-	 */
-	@Delete("DELETE FROM ${tableName} WHERE code = #{code}")
-	public int deleteEncodeByCode(@Param("code") String code,
-			@Param("tableName") String tableName);
-
+package com.platform.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+import org.springframework.stereotype.Repository;
+
+import com.platform.entities.EncodedInfoEntity;
+
+/**
+ * 数据库操作: 实现增、删、改、查
+ * 
+ * @author wuming
+ * 
+ */
+@Repository(value = "encodeInfoDao")
+public interface EncodeInfoDao {
+
+	/**
+	 * 获取查询表下的所有实体(行政区划/系统)信息
+	 * 
+	 * @param tableName
+	 *            查询的表名
+	 * @return 所有实体信息:名称和编码
+	 */
+	@Select("SELECT code, name FROM ${tableName}")
+	public List<EncodedInfoEntity> getAllEntityInfo(
+			@Param("tableName") String tableName);
+
+	/**
+	 * 根据实体(行政区划/系统)的名称查询编码
+	 * 
+	 * @param code
+	 *            实体编码
+	 * @param tableName
+	 *            查询的表名
+	 * @return 编码是主键,查询结果最多只有一条记录
+	 */
+	@Select("SELECT name FROM ${tableName} WHERE code = #{code}")
+	public String getEncodeNameByCode(@Param("code") String code,
+			@Param("tableName") String tableName);
+
+	/**
+	 * 根据实体(行政区划/系统)的编码查询名称
+	 * 
+	 * @param name
+	 *            实体名称
+	 * @param tableName
+	 *            查询的表名
+	 * @return 名称不是主键,查询结果可能会有多个
+	 */
+	@Select("SELECT code FROM ${tableName} WHERE name = #{name}")
+	public List<String> getEncodeCodeByName(@Param("name") String name,
+			@Param("tableName") String tableName);
+
+	/**
+	 * 根据实体(行政区划/系统)的编码,更新实体的名称
+	 * 
+	 * @param code
+	 *            系统编码
+	 * @param tableName
+	 *            查询的表名
+	 * @return
+	 */
+	@Update("UPDATE ${tableName} SET name = #{name} WHERE code = #{code}")
+	public int updateEncodeNameByCode(@Param("code") String code,
+			@Param("name") String name, @Param("tableName") String tableName);
+
+	/**
+	 * 向表中插入实体(行政区划/系统)信息
+	 * 
+	 * @param efe
+	 *            插入的实体信息
+	 * @param tableName
+	 *            表名
+	 * @return
+	 */
+	@Insert("INSERT INTO ${tableName} (code, name) VALUES (#{efe.code}, #{efe.name})")
+	public int insertEncodeEntity(@Param("efe") EncodedInfoEntity efe,
+			@Param("tableName") String tableName);
+
+	/**
+	 * 删除表中的实体(行政区划/系统)
+	 * 
+	 * @param code
+	 *            实体的编码
+	 * @param tableName
+	 *            表名
+	 * @return
+	 */
+	@Delete("DELETE FROM ${tableName} WHERE code = #{code}")
+	public int deleteEncodeByCode(@Param("code") String code,
+			@Param("tableName") String tableName);
+
 }
\ No newline at end of file
diff --git a/src/com/platform/dao/GatherOracleDao.java b/src/com/platform/dao/GatherOracleDao.java
index 43852cac..b2061c0c 100644
--- a/src/com/platform/dao/GatherOracleDao.java
+++ b/src/com/platform/dao/GatherOracleDao.java
@@ -1,39 +1,39 @@
-package com.platform.dao;
-
-import java.util.List;
-
-import org.springframework.stereotype.Repository;
-
-import com.platform.entities.GatherOracleInfo;
-
-@Repository(value = "gatherOracleDao")
-public interface GatherOracleDao {
-	
-	/**
-	 * @return 查询所有的oracle记录
-	 * @throws Exception 异常
-	 */
-	public List<GatherOracleInfo> selectAllOracle() throws Exception;
-	
-	/**
-	 * @param id
-	 * @return
-	 * @throws Exception
-	 */
-	public int deleteOracleById(int id) throws Exception;
-	
-	/**
-	 * @param oracle
-	 * @return
-	 * @throws Exception
-	 */
-	public int insertOracle(GatherOracleInfo oracle) throws Exception;
-	
-	/**
-	 * @param oracle
-	 * @return
-	 * @throws Exception
-	 */
-	public int updateOracleById(GatherOracleInfo oracle) throws Exception;
-
-}
+package com.platform.dao;
+
+import java.util.List;
+
+import org.springframework.stereotype.Repository;
+
+import com.platform.entities.GatherOracleInfo;
+
+@Repository(value = "gatherOracleDao")
+public interface GatherOracleDao {
+	
+	/**
+	 * @return 查询所有的oracle记录
+	 * @throws Exception 异常
+	 */
+	public List<GatherOracleInfo> selectAllOracle() throws Exception;
+	
+	/**
+	 * @param id
+	 * @return
+	 * @throws Exception
+	 */
+	public int deleteOracleById(int id) throws Exception;
+	
+	/**
+	 * @param oracle
+	 * @return
+	 * @throws Exception
+	 */
+	public int insertOracle(GatherOracleInfo oracle) throws Exception;
+	
+	/**
+	 * @param oracle
+	 * @return
+	 * @throws Exception
+	 */
+	public int updateOracleById(GatherOracleInfo oracle) throws Exception;
+
+}
diff --git a/src/com/platform/dao/IRegionalismCodeDao.java b/src/com/platform/dao/IRegionalismCodeDao.java
index e89cd938..dfc15b47 100644
--- a/src/com/platform/dao/IRegionalismCodeDao.java
+++ b/src/com/platform/dao/IRegionalismCodeDao.java
@@ -1,28 +1,28 @@
-package com.platform.dao;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.DataInfoEntityMoveTmp;
-import com.platform.entities.PagerOptions;
-import com.platform.entities.RegionalismEntity;
-
-/**
- * @author chen
- * 数据迁移状态 临时 存放 ,
- */
-@Repository(value = "regionalismCodeDao")
-public interface IRegionalismCodeDao {
-
-	/** 查
-	 * @return
-	 * @throws Exception
-	 */
-	List<RegionalismEntity> findAllRegionalism() throws Exception;
-	
-	List<RegionalismEntity> findSubRegionalism(RegionalismEntity region) throws Exception;
-	
-}
+package com.platform.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.DataInfoEntityMoveTmp;
+import com.platform.entities.PagerOptions;
+import com.platform.entities.RegionalismEntity;
+
+/**
+ * @author chen
+ * 数据迁移状态 临时 存放 ,
+ */
+@Repository(value = "regionalismCodeDao")
+public interface IRegionalismCodeDao {
+
+	/** 查
+	 * @return
+	 * @throws Exception
+	 */
+	List<RegionalismEntity> findAllRegionalism() throws Exception;
+	
+	List<RegionalismEntity> findSubRegionalism(RegionalismEntity region) throws Exception;
+	
+}
diff --git a/src/com/platform/dao/ISystemCodeDao.java b/src/com/platform/dao/ISystemCodeDao.java
index fde3b02f..401b7787 100644
--- a/src/com/platform/dao/ISystemCodeDao.java
+++ b/src/com/platform/dao/ISystemCodeDao.java
@@ -1,28 +1,28 @@
-package com.platform.dao;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.DataInfoEntityMoveTmp;
-import com.platform.entities.PagerOptions;
-import com.platform.entities.RegionalismEntity;
-import com.platform.entities.SystemEntity;
-
-/**
- * @author chen
- * 数据迁移状态 临时 存放 ,
- */
-@Repository(value = "systemCodeDao")
-public interface ISystemCodeDao {
-
-	/** 查
-	 * @return
-	 * @throws Exception
-	 */
-	List<SystemEntity> findAllSystem() throws Exception;
-	
-	List<SystemEntity> findSubSystem(SystemEntity system) throws Exception;
-}
+package com.platform.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.DataInfoEntityMoveTmp;
+import com.platform.entities.PagerOptions;
+import com.platform.entities.RegionalismEntity;
+import com.platform.entities.SystemEntity;
+
+/**
+ * @author chen
+ * 数据迁移状态 临时 存放 ,
+ */
+@Repository(value = "systemCodeDao")
+public interface ISystemCodeDao {
+
+	/** 查
+	 * @return
+	 * @throws Exception
+	 */
+	List<SystemEntity> findAllSystem() throws Exception;
+	
+	List<SystemEntity> findSubSystem(SystemEntity system) throws Exception;
+}
diff --git a/src/com/platform/entities/BasedType.java b/src/com/platform/entities/BasedType.java
index d133a0eb..e1568cec 100644
--- a/src/com/platform/entities/BasedType.java
+++ b/src/com/platform/entities/BasedType.java
@@ -1,48 +1,48 @@
-package com.platform.entities;
-
-import java.util.Date;
-
-public enum BasedType {
-
-	STRING("java.lang.String", String.class), INTEGER("java.lang.Integer",
-			Integer.class), SHORT("java.lang.Short", Short.class), LONG(
-			"java.lang.Long", Long.class), DATE("java.util.Date", Date.class);
-
-	private String type;
-	private Class<?> clazz;
-
-	private BasedType(String type, Class<?> clazz) {
-		this.type = type;
-		this.clazz = clazz;
-	}
-
-	public static Class<?> getTypeClass(String type) {
-		for (BasedType bt : BasedType.values()) {
-			if (bt.equals(type))
-				return bt.clazz;
-		}
-		return null;
-	}
-
-	public String getType() {
-		return type;
-	}
-
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	public Class<?> getClazz() {
-		return clazz;
-	}
-
-	public void setClazz(Class<?> clazz) {
-		this.clazz = clazz;
-	}
-
-	@Override
-	public String toString() {
-		return this.type;
-	}
-
-}
+package com.platform.entities;
+
+import java.util.Date;
+
+public enum BasedType {
+
+	STRING("java.lang.String", String.class), INTEGER("java.lang.Integer",
+			Integer.class), SHORT("java.lang.Short", Short.class), LONG(
+			"java.lang.Long", Long.class), DATE("java.util.Date", Date.class);
+
+	private String type;
+	private Class<?> clazz;
+
+	private BasedType(String type, Class<?> clazz) {
+		this.type = type;
+		this.clazz = clazz;
+	}
+
+	public static Class<?> getTypeClass(String type) {
+		for (BasedType bt : BasedType.values()) {
+			if (bt.equals(type))
+				return bt.clazz;
+		}
+		return null;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public Class<?> getClazz() {
+		return clazz;
+	}
+
+	public void setClazz(Class<?> clazz) {
+		this.clazz = clazz;
+	}
+
+	@Override
+	public String toString() {
+		return this.type;
+	}
+
+}
diff --git a/src/com/platform/entities/Brick.java b/src/com/platform/entities/Brick.java
index e6701dab..53337ac9 100644
--- a/src/com/platform/entities/Brick.java
+++ b/src/com/platform/entities/Brick.java
@@ -1,110 +1,110 @@
-
-/**
- * 文件名   :   Brick.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  chen
- * 版本       :   <版本>
- * 修改时间:      2016年9月9日
- * 修改内容:      <修改内容>
- */
-package com.platform.entities;
-
-/**
- * <一句话功能简述> volume 下的 块 对象
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月9日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-
-public class Brick {
-	
-	/** volume总大小  */
-	private double availableSize;
-	
-	/** volume已使用大小  */
-	private double usedSize;
-
-	/** ip  */
-	private String ip;
-	
-	/** 路径  */
-	private String path;
-	
-	/**
-	 * true 有连接,  false: 失去连接
-	 */
-	private boolean status;
-
-	/**
-	 * @return the availableSize
-	 */
-	public double getAvailableSize() {
-		return availableSize;
-	}
-
-	/**
-	 * @param availableSize the availableSize to set
-	 */
-	public void setAvailableSize(double availableSize) {
-		this.availableSize = availableSize;
-	}
-
-	/**
-	 * @return the usedSize
-	 */
-	public double getUsedSize() {
-		return usedSize;
-	}
-
-	/**
-	 * @param usedSize the usedSize to set
-	 */
-	public void setUsedSize(double usedSize) {
-		this.usedSize = usedSize;
-	}
-
-	/**
-	 * @return the ip
-	 */
-	public String getIp() {
-		return ip;
-	}
-
-	/**
-	 * @param ip the ip to set
-	 */
-	public void setIp(String ip) {
-		this.ip = ip;
-	}
-
-	/**
-	 * @return the path
-	 */
-	public String getPath() {
-		return path;
-	}
-
-	/**
-	 * @param path the path to set
-	 */
-	public void setPath(String path) {
-		this.path = path;
-	}
-
-	/**
-	 * @return the status
-	 */
-	public boolean isStatus() {
-		return status;
-	}
-
-	/**
-	 * @param status the status to set
-	 */
-	public void setStatus(boolean status) {
-		this.status = status;
-	}
-}
+
+/**
+ * 文件名   :   Brick.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  chen
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月9日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.entities;
+
+/**
+ * <一句话功能简述> volume 下的 块 对象
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月9日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+
+public class Brick {
+	
+	/** volume总大小  */
+	private double availableSize;
+	
+	/** volume已使用大小  */
+	private double usedSize;
+
+	/** ip  */
+	private String ip;
+	
+	/** 路径  */
+	private String path;
+	
+	/**
+	 * true 有连接,  false: 失去连接
+	 */
+	private boolean status;
+
+	/**
+	 * @return the availableSize
+	 */
+	public double getAvailableSize() {
+		return availableSize;
+	}
+
+	/**
+	 * @param availableSize the availableSize to set
+	 */
+	public void setAvailableSize(double availableSize) {
+		this.availableSize = availableSize;
+	}
+
+	/**
+	 * @return the usedSize
+	 */
+	public double getUsedSize() {
+		return usedSize;
+	}
+
+	/**
+	 * @param usedSize the usedSize to set
+	 */
+	public void setUsedSize(double usedSize) {
+		this.usedSize = usedSize;
+	}
+
+	/**
+	 * @return the ip
+	 */
+	public String getIp() {
+		return ip;
+	}
+
+	/**
+	 * @param ip the ip to set
+	 */
+	public void setIp(String ip) {
+		this.ip = ip;
+	}
+
+	/**
+	 * @return the path
+	 */
+	public String getPath() {
+		return path;
+	}
+
+	/**
+	 * @param path the path to set
+	 */
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+	/**
+	 * @return the status
+	 */
+	public boolean isStatus() {
+		return status;
+	}
+
+	/**
+	 * @param status the status to set
+	 */
+	public void setStatus(boolean status) {
+		this.status = status;
+	}
+}
diff --git a/src/com/platform/entities/DataInfoEntity.java b/src/com/platform/entities/DataInfoEntity.java
index bf5db6fa..062db3ce 100644
--- a/src/com/platform/entities/DataInfoEntity.java
+++ b/src/com/platform/entities/DataInfoEntity.java
@@ -1,269 +1,269 @@
-package com.platform.entities;
-
-/**
- * 数据信息实体类
- * 
- * @author wuming
- * 
- */
-public class DataInfoEntity {
-	private int id;
-	private String regionalismCode; // 行政区划编码
-	private String cityName; // 市
-	private String districtName; // 区县
-	private int systemCode; // 系统编码
-	private String systemName; // 系统名称
-	private String dataType; // 数据类型:财政\社保\...
-	private int dataVersion; // 数据版本
-	private String submittedBatch; // 上报批次
-	private String dataPath; // 数据路径
-	private String collectingTime; // 采集时间
-	private String collectorContacts; // 采集人的联系
-	private String charset; // 数据的字符编码
-	private String collectorName; // 采集人姓名
-	private String year; // 数据年度
-	
-	/**	 是否抽取 	 */
-	private int extractStatus;
-	/**	数据年度起始	 */
-	private String startYear;
-	/**	数据年度结束	 */
-	private String endYear;
-	
-	/**	volume的ip	 */
-	private String volumeIp;
-	/**	volume的path	 */
-	private String volumePath;
-	
-	public DataInfoEntity() {
-	}
-
-	public DataInfoEntity(int id, String regionalismCode, String cityName,
-			String districtName, int systemCode, String systemName,
-			String dataType, int dataVersion, String submittedBatch,
-			String dataPath, String collectingTime, String collectorContacts,
-			String charset, String collectorName, String year) {
-		super();
-		this.id = id;
-		this.regionalismCode = regionalismCode;
-		this.cityName = cityName;
-		this.districtName = districtName;
-		this.systemCode = systemCode;
-		this.systemName = systemName;
-		this.dataType = dataType;
-		this.dataVersion = dataVersion;
-		this.submittedBatch = submittedBatch;
-		this.dataPath = dataPath;
-		this.collectingTime = collectingTime;
-		this.collectorContacts = collectorContacts;
-		this.charset = charset;
-		this.collectorName = collectorName;
-		this.year = year;
-	}
-
-	public int getId() {
-		return id;
-	}
-
-	public void setId(int id) {
-		this.id = id;
-	}
-
-	public String getRegionalismCode() {
-		return regionalismCode;
-	}
-
-	public void setRegionalismCode(String regionalismCode) {
-		this.regionalismCode = regionalismCode;
-	}
-
-	public String getCityName() {
-		return cityName;
-	}
-
-	public void setCityName(String cityName) {
-		this.cityName = cityName;
-	}
-
-	public String getDistrictName() {
-		return districtName;
-	}
-
-	public void setDistrictName(String districtName) {
-		this.districtName = districtName;
-	}
-
-	public int getSystemCode() {
-		return systemCode;
-	}
-
-	public void setSystemCode(int systemCode) {
-		this.systemCode = systemCode;
-	}
-
-	public String getSystemName() {
-		return systemName;
-	}
-
-	public void setSystemName(String systemName) {
-		this.systemName = systemName;
-	}
-
-	public String getDataType() {
-		return dataType;
-	}
-
-	public void setDataType(String dataType) {
-		this.dataType = dataType;
-	}
-
-	public int getDataVersion() {
-		return dataVersion;
-	}
-
-	public void setDataVersion(int dataVersion) {
-		this.dataVersion = dataVersion;
-	}
-
-	public String getSubmittedBatch() {
-		return submittedBatch;
-	}
-
-	public void setSubmittedBatch(String submittedBatch) {
-		this.submittedBatch = submittedBatch;
-	}
-
-	public String getDataPath() {
-		return dataPath;
-	}
-
-	public void setDataPath(String dataPath) {
-		this.dataPath = dataPath;
-	}
-
-	public String getCollectingTime() {
-		return collectingTime;
-	}
-
-	public void setCollectingTime(String collectingTime) {
-		this.collectingTime = collectingTime;
-	}
-
-	public String getCollectorContacts() {
-		return collectorContacts;
-	}
-
-	public void setCollectorContacts(String collectorContacts) {
-		this.collectorContacts = collectorContacts;
-	}
-
-	public String getCharset() {
-		return charset;
-	}
-
-	public void setCharset(String charset) {
-		this.charset = charset;
-	}
-
-	public String getCollectorName() {
-		return collectorName;
-	}
-
-	public void setCollectorName(String collectorName) {
-		this.collectorName = collectorName;
-	}
-
-	public String getYear() {
-		return year;
-	}
-
-	public void setYear(String year) {
-		this.year = year;
-	}
-
-	/**
-	 * @return the startYear
-	 */
-	public String getStartYear() {
-		return startYear;
-	}
-
-	/**
-	 * @param startYear the startYear to set
-	 */
-	public void setStartYear(String startYear) {
-		this.startYear = startYear;
-	}
-
-	/**
-	 * @return the endYear
-	 */
-	public String getEndYear() {
-		return endYear;
-	}
-
-	/**
-	 * @param endYear the endYear to set
-	 */
-	public void setEndYear(String endYear) {
-		this.endYear = endYear;
-	}
-
-	/**
-	 * @return the extractStatus
-	 */
-	public int getExtractStatus() {
-		return extractStatus;
-	}
-
-	/**
-	 * @param extractStatus the extractStatus to set
-	 */
-	public void setExtractStatus(int extractStatus) {
-		this.extractStatus = extractStatus;
-	}
-
-	/**
-	 * @return the volumeIp
-	 */
-	public String getVolumeIp() {
-		return volumeIp;
-	}
-
-	/**
-	 * @param volumeIp the volumeIp to set
-	 */
-	public void setVolumeIp(String volumeIp) {
-		this.volumeIp = volumeIp;
-	}
-
-	/**
-	 * @return the volumePath
-	 */
-	public String getVolumePath() {
-		return volumePath;
-	}
-
-	/**
-	 * @param volumePath the volumePath to set
-	 */
-	public void setVolumePath(String volumePath) {
-		this.volumePath = volumePath;
-	}
-
-	@Override
-	public String toString() {
-		return "id=" + this.id + " ,regionalismCode=" + this.regionalismCode
-				+ " ,cityName=" + this.cityName + " ,districtName="
-				+ this.districtName + " ,systemCode=" + this.systemCode
-				+ " ,systemName" + this.systemName + " ,dataType="
-				+ this.dataType + " ,dataVersion=" + this.dataVersion
-				+ " ,submittedBatch=" + this.submittedBatch + " ,dataPath="
-				+ this.dataPath + " ,collectingTime=" + this.collectingTime
-				+ " ,collectorContacts=" + this.collectorContacts
-				+ " ,charset=" + this.charset + " ,collectorName="
-				+ this.collectorName + " ,year=" + this.year + " startYear=" 
-				+this.startYear +" endYear="+this.endYear;
-	}
-
-}
+package com.platform.entities;
+
+/**
+ * 数据信息实体类
+ * 
+ * @author wuming
+ * 
+ */
+public class DataInfoEntity {
+	private int id;
+	private String regionalismCode; // 行政区划编码
+	private String cityName; // 市
+	private String districtName; // 区县
+	private int systemCode; // 系统编码
+	private String systemName; // 系统名称
+	private String dataType; // 数据类型:财政\社保\...
+	private int dataVersion; // 数据版本
+	private String submittedBatch; // 上报批次
+	private String dataPath; // 数据路径
+	private String collectingTime; // 采集时间
+	private String collectorContacts; // 采集人的联系
+	private String charset; // 数据的字符编码
+	private String collectorName; // 采集人姓名
+	private String year; // 数据年度
+	
+	/**	 是否抽取 	 */
+	private int extractStatus;
+	/**	数据年度起始	 */
+	private String startYear;
+	/**	数据年度结束	 */
+	private String endYear;
+	
+	/**	volume的ip	 */
+	private String volumeIp;
+	/**	volume的path	 */
+	private String volumePath;
+	
+	public DataInfoEntity() {
+	}
+
+	public DataInfoEntity(int id, String regionalismCode, String cityName,
+			String districtName, int systemCode, String systemName,
+			String dataType, int dataVersion, String submittedBatch,
+			String dataPath, String collectingTime, String collectorContacts,
+			String charset, String collectorName, String year) {
+		super();
+		this.id = id;
+		this.regionalismCode = regionalismCode;
+		this.cityName = cityName;
+		this.districtName = districtName;
+		this.systemCode = systemCode;
+		this.systemName = systemName;
+		this.dataType = dataType;
+		this.dataVersion = dataVersion;
+		this.submittedBatch = submittedBatch;
+		this.dataPath = dataPath;
+		this.collectingTime = collectingTime;
+		this.collectorContacts = collectorContacts;
+		this.charset = charset;
+		this.collectorName = collectorName;
+		this.year = year;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public String getRegionalismCode() {
+		return regionalismCode;
+	}
+
+	public void setRegionalismCode(String regionalismCode) {
+		this.regionalismCode = regionalismCode;
+	}
+
+	public String getCityName() {
+		return cityName;
+	}
+
+	public void setCityName(String cityName) {
+		this.cityName = cityName;
+	}
+
+	public String getDistrictName() {
+		return districtName;
+	}
+
+	public void setDistrictName(String districtName) {
+		this.districtName = districtName;
+	}
+
+	public int getSystemCode() {
+		return systemCode;
+	}
+
+	public void setSystemCode(int systemCode) {
+		this.systemCode = systemCode;
+	}
+
+	public String getSystemName() {
+		return systemName;
+	}
+
+	public void setSystemName(String systemName) {
+		this.systemName = systemName;
+	}
+
+	public String getDataType() {
+		return dataType;
+	}
+
+	public void setDataType(String dataType) {
+		this.dataType = dataType;
+	}
+
+	public int getDataVersion() {
+		return dataVersion;
+	}
+
+	public void setDataVersion(int dataVersion) {
+		this.dataVersion = dataVersion;
+	}
+
+	public String getSubmittedBatch() {
+		return submittedBatch;
+	}
+
+	public void setSubmittedBatch(String submittedBatch) {
+		this.submittedBatch = submittedBatch;
+	}
+
+	public String getDataPath() {
+		return dataPath;
+	}
+
+	public void setDataPath(String dataPath) {
+		this.dataPath = dataPath;
+	}
+
+	public String getCollectingTime() {
+		return collectingTime;
+	}
+
+	public void setCollectingTime(String collectingTime) {
+		this.collectingTime = collectingTime;
+	}
+
+	public String getCollectorContacts() {
+		return collectorContacts;
+	}
+
+	public void setCollectorContacts(String collectorContacts) {
+		this.collectorContacts = collectorContacts;
+	}
+
+	public String getCharset() {
+		return charset;
+	}
+
+	public void setCharset(String charset) {
+		this.charset = charset;
+	}
+
+	public String getCollectorName() {
+		return collectorName;
+	}
+
+	public void setCollectorName(String collectorName) {
+		this.collectorName = collectorName;
+	}
+
+	public String getYear() {
+		return year;
+	}
+
+	public void setYear(String year) {
+		this.year = year;
+	}
+
+	/**
+	 * @return the startYear
+	 */
+	public String getStartYear() {
+		return startYear;
+	}
+
+	/**
+	 * @param startYear the startYear to set
+	 */
+	public void setStartYear(String startYear) {
+		this.startYear = startYear;
+	}
+
+	/**
+	 * @return the endYear
+	 */
+	public String getEndYear() {
+		return endYear;
+	}
+
+	/**
+	 * @param endYear the endYear to set
+	 */
+	public void setEndYear(String endYear) {
+		this.endYear = endYear;
+	}
+
+	/**
+	 * @return the extractStatus
+	 */
+	public int getExtractStatus() {
+		return extractStatus;
+	}
+
+	/**
+	 * @param extractStatus the extractStatus to set
+	 */
+	public void setExtractStatus(int extractStatus) {
+		this.extractStatus = extractStatus;
+	}
+
+	/**
+	 * @return the volumeIp
+	 */
+	public String getVolumeIp() {
+		return volumeIp;
+	}
+
+	/**
+	 * @param volumeIp the volumeIp to set
+	 */
+	public void setVolumeIp(String volumeIp) {
+		this.volumeIp = volumeIp;
+	}
+
+	/**
+	 * @return the volumePath
+	 */
+	public String getVolumePath() {
+		return volumePath;
+	}
+
+	/**
+	 * @param volumePath the volumePath to set
+	 */
+	public void setVolumePath(String volumePath) {
+		this.volumePath = volumePath;
+	}
+
+	@Override
+	public String toString() {
+		return "id=" + this.id + " ,regionalismCode=" + this.regionalismCode
+				+ " ,cityName=" + this.cityName + " ,districtName="
+				+ this.districtName + " ,systemCode=" + this.systemCode
+				+ " ,systemName" + this.systemName + " ,dataType="
+				+ this.dataType + " ,dataVersion=" + this.dataVersion
+				+ " ,submittedBatch=" + this.submittedBatch + " ,dataPath="
+				+ this.dataPath + " ,collectingTime=" + this.collectingTime
+				+ " ,collectorContacts=" + this.collectorContacts
+				+ " ,charset=" + this.charset + " ,collectorName="
+				+ this.collectorName + " ,year=" + this.year + " startYear=" 
+				+this.startYear +" endYear="+this.endYear;
+	}
+
+}
diff --git a/src/com/platform/entities/DataInfoEntityMoveTmp.java b/src/com/platform/entities/DataInfoEntityMoveTmp.java
index 30a02e7b..bf64fdd9 100644
--- a/src/com/platform/entities/DataInfoEntityMoveTmp.java
+++ b/src/com/platform/entities/DataInfoEntityMoveTmp.java
@@ -1,124 +1,124 @@
-package com.platform.entities;
-
-public class DataInfoEntityMoveTmp extends DataInfoEntity {
-	
-	private String dstPath;
-	
-	private String completeStatus;
-	
-	private int rate;
-	
-	/**
-	 * 
-	 */
-	private String lastTime; 
-	
-	private String dstVolumeIp;
-	
-	private String dstVolumePath;	
-	
-	private int fkid;
-	
-	public DataInfoEntityMoveTmp() {
-		// TODO Auto-generated constructor stub
-	}
-
-	/**
-	 * @return the dstPath
-	 */
-	public String getDstPath() {
-		return dstPath;
-	}
-
-	/**
-	 * @param dstPath the dstPath to set
-	 */
-	public void setDstPath(String dstPath) {
-		this.dstPath = dstPath;
-	}
-
-	/**
-	 * @return the completeStatus
-	 */
-	public String getCompleteStatus() {
-		return completeStatus;
-	}
-
-	/**
-	 * @param completeStatus the completeStatus to set
-	 */
-	public void setCompleteStatus(String completeStatus) {
-		this.completeStatus = completeStatus;
-	}
-
-	/**
-	 * @return the rate
-	 */
-	public int getRate() {
-		return rate;
-	}
-
-	/**
-	 * @param rate the rate to set
-	 */
-	public void setRate(int rate) {
-		this.rate = rate;
-	}
-
-	/**
-	 * @return the lastTime
-	 */
-	public String getLastTime() {
-		return lastTime;
-	}
-
-	/**
-	 * @param lastTime the lastTime to set
-	 */
-	public void setLastTime(String lastTime) {
-		this.lastTime = lastTime;
-	}
-
-	/**
-	 * @return the fkid
-	 */
-	public int getFkid() {
-		return fkid;
-	}
-
-	/**
-	 * @param fkid the fkid to set
-	 */
-	public void setFkid(int fkid) {
-		this.fkid = fkid;
-	}
-
-	/**
-	 * @return the dstVolumeIp
-	 */
-	public String getDstVolumeIp() {
-		return dstVolumeIp;
-	}
-
-	/**
-	 * @param dstVolumeIp the dstVolumeIp to set
-	 */
-	public void setDstVolumeIp(String dstVolumeIp) {
-		this.dstVolumeIp = dstVolumeIp;
-	}
-
-	/**
-	 * @return the dstVolumePath
-	 */
-	public String getDstVolumePath() {
-		return dstVolumePath;
-	}
-
-	/**
-	 * @param dstVolumePath the dstVolumePath to set
-	 */
-	public void setDstVolumePath(String dstVolumePath) {
-		this.dstVolumePath = dstVolumePath;
-	}
-
-}
+package com.platform.entities;
+
+public class DataInfoEntityMoveTmp extends DataInfoEntity {
+	
+	private String dstPath;
+	
+	private String completeStatus;
+	
+	private int rate;
+	
+	/**
+	 * 
+	 */
+	private String lastTime; 
+	
+	private String dstVolumeIp;
+	
+	private String dstVolumePath;	
+	
+	private int fkid;
+	
+	public DataInfoEntityMoveTmp() {
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * @return the dstPath
+	 */
+	public String getDstPath() {
+		return dstPath;
+	}
+
+	/**
+	 * @param dstPath the dstPath to set
+	 */
+	public void setDstPath(String dstPath) {
+		this.dstPath = dstPath;
+	}
+
+	/**
+	 * @return the completeStatus
+	 */
+	public String getCompleteStatus() {
+		return completeStatus;
+	}
+
+	/**
+	 * @param completeStatus the completeStatus to set
+	 */
+	public void setCompleteStatus(String completeStatus) {
+		this.completeStatus = completeStatus;
+	}
+
+	/**
+	 * @return the rate
+	 */
+	public int getRate() {
+		return rate;
+	}
+
+	/**
+	 * @param rate the rate to set
+	 */
+	public void setRate(int rate) {
+		this.rate = rate;
+	}
+
+	/**
+	 * @return the lastTime
+	 */
+	public String getLastTime() {
+		return lastTime;
+	}
+
+	/**
+	 * @param lastTime the lastTime to set
+	 */
+	public void setLastTime(String lastTime) {
+		this.lastTime = lastTime;
+	}
+
+	/**
+	 * @return the fkid
+	 */
+	public int getFkid() {
+		return fkid;
+	}
+
+	/**
+	 * @param fkid the fkid to set
+	 */
+	public void setFkid(int fkid) {
+		this.fkid = fkid;
+	}
+
+	/**
+	 * @return the dstVolumeIp
+	 */
+	public String getDstVolumeIp() {
+		return dstVolumeIp;
+	}
+
+	/**
+	 * @param dstVolumeIp the dstVolumeIp to set
+	 */
+	public void setDstVolumeIp(String dstVolumeIp) {
+		this.dstVolumeIp = dstVolumeIp;
+	}
+
+	/**
+	 * @return the dstVolumePath
+	 */
+	public String getDstVolumePath() {
+		return dstVolumePath;
+	}
+
+	/**
+	 * @param dstVolumePath the dstVolumePath to set
+	 */
+	public void setDstVolumePath(String dstVolumePath) {
+		this.dstVolumePath = dstVolumePath;
+	}
+
+}
diff --git a/src/com/platform/entities/EncodedInfoEntity.java b/src/com/platform/entities/EncodedInfoEntity.java
index 3f2f425e..728850ff 100644
--- a/src/com/platform/entities/EncodedInfoEntity.java
+++ b/src/com/platform/entities/EncodedInfoEntity.java
@@ -1,41 +1,41 @@
-package com.platform.entities;
-
-/**
- * 
- * 编码信息实体
- *   行政区划/系统信息
- * @author wuming
- *
- */
-public class EncodedInfoEntity {
-	private String name; //名称
-	private String code; //编码
-	
-	public EncodedInfoEntity() {}
-	
-	public EncodedInfoEntity(String name, String code) {		
-		this.name = name;
-		this.code = code;
-	}
-	
-	public String getName() {
-		return name;
-	}
-	
-	public void setName(String name) {
-		this.name = name;
-	}
-	
-	public String getCode() {
-		return code;
-	}
-	
-	public void setCode(String code) {
-		this.code = code;
-	}	
-	
-	@Override
-	public String toString(){
-		return "code=" + this.code + ", name=" + this.name;
-	}
-}
+package com.platform.entities;
+
+/**
+ * 
+ * 编码信息实体
+ *   行政区划/系统信息
+ * @author wuming
+ *
+ */
+public class EncodedInfoEntity {
+	private String name; //名称
+	private String code; //编码
+	
+	public EncodedInfoEntity() {}
+	
+	public EncodedInfoEntity(String name, String code) {		
+		this.name = name;
+		this.code = code;
+	}
+	
+	public String getName() {
+		return name;
+	}
+	
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	public String getCode() {
+		return code;
+	}
+	
+	public void setCode(String code) {
+		this.code = code;
+	}	
+	
+	@Override
+	public String toString(){
+		return "code=" + this.code + ", name=" + this.name;
+	}
+}
diff --git a/src/com/platform/entities/FolderNode.java b/src/com/platform/entities/FolderNode.java
index 5a9a56b7..e9bc91da 100644
--- a/src/com/platform/entities/FolderNode.java
+++ b/src/com/platform/entities/FolderNode.java
@@ -1,65 +1,65 @@
-package com.platform.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class FolderNode {
-	private String name;
-	private int isFolder; // 1 is file and other integer is folder show children number
-	private String path;
-	private List<FolderNode> childNodes = new ArrayList<FolderNode>();
-	
-
-	public FolderNode() {
-		// TODO Auto-generated constructor stub
-	}
-
-	
-	public FolderNode(String name) {
-		this.name = name;
-	}
-
-	public FolderNode(String name, int isFolder) {
-		this.name = name;
-		this.isFolder = isFolder;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * @return the isFolder
-	 */
-	public int getIsFolder() {
-		return isFolder;
-	}
-
-	/**
-	 * @param isFolder the isFolder to set
-	 */
-	public void setIsFolder(int isFolder) {
-		this.isFolder = isFolder;
-	}
-
-	public String getPath() {
-		return path;
-	}
-
-	public void setPath(String path) {
-		this.path = path;
-	}
-
-	public List<FolderNode> getChildNodes() {
-		return childNodes;
-	}
-
-	public void setChildNodes(List<FolderNode> childNodes) {
-		this.childNodes = childNodes;
-	}
-
-}
+package com.platform.entities;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class FolderNode {
+	private String name;
+	private int isFolder; // 1 is file and other integer is folder show children number
+	private String path;
+	private List<FolderNode> childNodes = new ArrayList<FolderNode>();
+	
+
+	public FolderNode() {
+		// TODO Auto-generated constructor stub
+	}
+
+	
+	public FolderNode(String name) {
+		this.name = name;
+	}
+
+	public FolderNode(String name, int isFolder) {
+		this.name = name;
+		this.isFolder = isFolder;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * @return the isFolder
+	 */
+	public int getIsFolder() {
+		return isFolder;
+	}
+
+	/**
+	 * @param isFolder the isFolder to set
+	 */
+	public void setIsFolder(int isFolder) {
+		this.isFolder = isFolder;
+	}
+
+	public String getPath() {
+		return path;
+	}
+
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+	public List<FolderNode> getChildNodes() {
+		return childNodes;
+	}
+
+	public void setChildNodes(List<FolderNode> childNodes) {
+		this.childNodes = childNodes;
+	}
+
+}
diff --git a/src/com/platform/entities/GatherOracleInfo.java b/src/com/platform/entities/GatherOracleInfo.java
index 4ceca3b4..b06fee63 100644
--- a/src/com/platform/entities/GatherOracleInfo.java
+++ b/src/com/platform/entities/GatherOracleInfo.java
@@ -1,82 +1,82 @@
-package com.platform.entities;
-
-import com.platform.entities.OracleConnectorParams;
-
-public class GatherOracleInfo extends OracleConnectorParams {
-	
-	private String tableName;
-	
-	private String suffix;
-	
-	private int id;
-	
-	private String remove;
-	
-	/**
-	 * 0:未知状态, 1:连接成功 ,2:在使用 ,3 :失败
-	 */
-	private int status;
-	
-	public GatherOracleInfo() {
-		super();
-	}
-
-	public GatherOracleInfo(String port, String ip, String name, String user,
-			String password, String database) {
-		super(port, ip, name, user, password, database);
-		// TODO Auto-generated constructor stub
-	}
-
-	public GatherOracleInfo(String port, String ip, String name, String user,
-			String password, String database, int _id, String tableName, String suffix, int status) {
-		super(port, ip, name, user, password, database);
-		this.tableName = tableName;
-		this.suffix = suffix;
-		this.id=_id;
-		this.status = status;
-	}
-
-	
-	
-
-	public String getTableName() {
-		return tableName;
-	}
-
-	public void setTableName(String tableName) {
-		this.tableName = tableName;
-	}
-
-	public String getSuffix() {
-		return suffix;
-	}
-
-	public void setSuffix(String suffix) {
-		this.suffix = suffix;
-	}
-
-	public int getId() {
-		return id;
-	}
-
-	public void setId(int id) {
-		this.id = id;
-	}
-
-	public int getStatus() {
-		return status;
-	}
-
-	public void setStatus(int status) {
-		this.status = status;
-	}
-
-	public String getRemove() {
-		return remove;
-	}
-
-	public void setRemove(String remove) {
-		this.remove = remove;
-	}	
-	
-}
+package com.platform.entities;
+
+import com.platform.entities.OracleConnectorParams;
+
+public class GatherOracleInfo extends OracleConnectorParams {
+	
+	private String tableName;
+	
+	private String suffix;
+	
+	private int id;
+	
+	private String remove;
+	
+	/**
+	 * 0:未知状态, 1:连接成功 ,2:在使用 ,3 :失败
+	 */
+	private int status;
+	
+	public GatherOracleInfo() {
+		super();
+	}
+
+	public GatherOracleInfo(String port, String ip, String name, String user,
+			String password, String database) {
+		super(port, ip, name, user, password, database);
+		// TODO Auto-generated constructor stub
+	}
+
+	public GatherOracleInfo(String port, String ip, String name, String user,
+			String password, String database, int _id, String tableName, String suffix, int status) {
+		super(port, ip, name, user, password, database);
+		this.tableName = tableName;
+		this.suffix = suffix;
+		this.id=_id;
+		this.status = status;
+	}
+
+	
+	
+
+	public String getTableName() {
+		return tableName;
+	}
+
+	public void setTableName(String tableName) {
+		this.tableName = tableName;
+	}
+
+	public String getSuffix() {
+		return suffix;
+	}
+
+	public void setSuffix(String suffix) {
+		this.suffix = suffix;
+	}
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public int getStatus() {
+		return status;
+	}
+
+	public void setStatus(int status) {
+		this.status = status;
+	}
+
+	public String getRemove() {
+		return remove;
+	}
+
+	public void setRemove(String remove) {
+		this.remove = remove;
+	}	
+	
+}
diff --git a/src/com/platform/entities/GfsFolderEntity.java b/src/com/platform/entities/GfsFolderEntity.java
index 13429ddf..ed87f85b 100644
--- a/src/com/platform/entities/GfsFolderEntity.java
+++ b/src/com/platform/entities/GfsFolderEntity.java
@@ -1,77 +1,77 @@
-
-/**
- * 文件名   :   GfsPathModel.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  chen
- * 版本       :   <版本>
- * 修改时间:      2016年9月8日
- * 修改内容:      <修改内容>
- */
-package com.platform.entities;
-
-import java.util.List;
-
-/**
- * <一句话功能简述>
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-
-public class GfsFolderEntity {
-
-	/** 当前路径  */
-	private String path;
-	
-	/** 当前路径  */
-	private String name;
-	
-	/** 子目录  */
-	private List<GfsFolderEntity> children;
-
-	/**
-	 * @return the path
-	 */
-	public String getPath() {
-		return path;
-	}
-
-	/**
-	 * @param path the path to set
-	 */
-	public void setPath(String path) {
-		this.path = path;
-	}
-
-	/**
-	 * @return the name
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * @param name the name to set
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * @return the children
-	 */
-	public List<GfsFolderEntity> getChildren() {
-		return children;
-	}
-
-	/**
-	 * @param children the children to set
-	 */
-	public void setChildren(List<GfsFolderEntity> children) {
-		this.children = children;
-	}
-	
-}
+
+/**
+ * 文件名   :   GfsPathModel.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  chen
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月8日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.entities;
+
+import java.util.List;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+
+public class GfsFolderEntity {
+
+	/** 当前路径  */
+	private String path;
+	
+	/** 当前路径  */
+	private String name;
+	
+	/** 子目录  */
+	private List<GfsFolderEntity> children;
+
+	/**
+	 * @return the path
+	 */
+	public String getPath() {
+		return path;
+	}
+
+	/**
+	 * @param path the path to set
+	 */
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+	/**
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * @param name the name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * @return the children
+	 */
+	public List<GfsFolderEntity> getChildren() {
+		return children;
+	}
+
+	/**
+	 * @param children the children to set
+	 */
+	public void setChildren(List<GfsFolderEntity> children) {
+		this.children = children;
+	}
+	
+}
diff --git a/src/com/platform/entities/OracleConnectorParams.java b/src/com/platform/entities/OracleConnectorParams.java
index 0e1ba753..8391a84a 100644
--- a/src/com/platform/entities/OracleConnectorParams.java
+++ b/src/com/platform/entities/OracleConnectorParams.java
@@ -1,93 +1,93 @@
-package com.platform.entities;
-
-import java.util.Properties;
-
-import com.platform.utils.ConfigPropertyReader;
-import com.platform.utils.Configs;
-
-public class OracleConnectorParams {
-	private String port;
-	private String ip;
-	private String name;
-	private String user;
-	private String password;
-	private String databaseName;
-	
-	public OracleConnectorParams() {
-		// TODO Auto-generated constructor stub
-		maybeInit();
-	}
-
-	public OracleConnectorParams(String port, String ip, String name) {
-		maybeInit();
-		this.port = port;
-		this.ip = ip;
-		this.name = name;
-	}
-
-	public OracleConnectorParams(String port, String ip, String name,
-			String user, String password, String database) {
-		this.port = port;
-		this.ip = ip;
-		this.name = name;
-		this.user = user;
-		this.password = password;
-		this.databaseName = database;
-	}
-
-	private void maybeInit() {
-		Properties properties = ConfigPropertyReader.Builder(
-				Configs.CONFIG_LOCALTION).getProperties();
-		this.user = properties.getProperty("collect-user-name");
-		this.password = properties.getProperty("collect-password");
-		this.databaseName = properties.getProperty("collect-service-name");
-	}
-
-	public String getPort() {
-		return port;
-	}
-
-	public void setPort(String port) {
-		this.port = port;
-	}
-
-	public String getIp() {
-		return ip;
-	}
-
-	public void setIp(String ip) {
-		this.ip = ip;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getUser() {
-		return user;
-	}
-
-	public void setUser(String user) {
-		this.user = user;
-	}
-
-	public String getPassword() {
-		return password;
-	}
-
-	public void setPassword(String password) {
-		this.password = password;
-	}
-
-	public String getDatabaseName() {
-		return databaseName;
-	}
-
-	public void setDatabaseName(String databaseName) {
-		this.databaseName = databaseName;
-	}
-}
+package com.platform.entities;
+
+import java.util.Properties;
+
+import com.platform.utils.ConfigPropertyReader;
+import com.platform.utils.Configs;
+
+public class OracleConnectorParams {
+	private String port;
+	private String ip;
+	private String name;
+	private String user;
+	private String password;
+	private String databaseName;
+	
+	public OracleConnectorParams() {
+		// TODO Auto-generated constructor stub
+		maybeInit();
+	}
+
+	public OracleConnectorParams(String port, String ip, String name) {
+		maybeInit();
+		this.port = port;
+		this.ip = ip;
+		this.name = name;
+	}
+
+	public OracleConnectorParams(String port, String ip, String name,
+			String user, String password, String database) {
+		this.port = port;
+		this.ip = ip;
+		this.name = name;
+		this.user = user;
+		this.password = password;
+		this.databaseName = database;
+	}
+
+	private void maybeInit() {
+		Properties properties = ConfigPropertyReader.Builder(
+				Configs.CONFIG_LOCALTION).getProperties();
+		this.user = properties.getProperty("collect-user-name");
+		this.password = properties.getProperty("collect-password");
+		this.databaseName = properties.getProperty("collect-service-name");
+	}
+
+	public String getPort() {
+		return port;
+	}
+
+	public void setPort(String port) {
+		this.port = port;
+	}
+
+	public String getIp() {
+		return ip;
+	}
+
+	public void setIp(String ip) {
+		this.ip = ip;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getUser() {
+		return user;
+	}
+
+	public void setUser(String user) {
+		this.user = user;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public String getDatabaseName() {
+		return databaseName;
+	}
+
+	public void setDatabaseName(String databaseName) {
+		this.databaseName = databaseName;
+	}
+}
diff --git a/src/com/platform/entities/PagerOptions.java b/src/com/platform/entities/PagerOptions.java
index 96c5b77f..e69e560a 100644
--- a/src/com/platform/entities/PagerOptions.java
+++ b/src/com/platform/entities/PagerOptions.java
@@ -1,158 +1,158 @@
-package com.platform.entities;
-
-import java.util.List;
-
-public class PagerOptions {
-	private Integer currentPageNum; //当前页码
-
-	private String dataType; //数据类型
-
-	private String submittedBatch;  //数据批次
- 
-	private String cityName;  //城市名称
-
-	private String districtName; //区县名
-
-	private Integer dataVersion;  //数据版本
-
-	private String systemName;  //系统名称
-
-	private String dataYear; // 数据年度
-
-	private Integer limit; //一次查询返回记录条数
-	
-	private Integer offset; // 查询偏移量:起始id
-	
-	private Integer totalLimit; //当前页前面已有多少条数据
-	
-	private Integer priorTableSize; //前一次操作一页显示的数据条数
-	
-	private String keyQuery;
-	
-	private String[] array;
-	
-	public Integer getCurrentPageNum() {
-		return currentPageNum;
-	}
-
-	public void setCurrentPageNum(Integer currentPageNum) {
-		this.currentPageNum = currentPageNum;
-	}
-
-	public String getDataType() {
-		return dataType;
-	}
-
-	public void setDataType(String dataType) {
-		this.dataType = dataType;
-	}
-
-	public String getSubmittedBatch() {
-		return submittedBatch;
-	}
-
-	public void setSubmittedBatch(String submittedBatch) {
-		this.submittedBatch = submittedBatch;
-	}
-
-	public String getCityName() {
-		return cityName;
-	}
-
-	public void setCityName(String cityName) {
-		this.cityName = cityName;
-	}
-
-	public String getDistrictName() {
-		return districtName;
-	}
-
-	public void setDistrictName(String districtName) {
-		this.districtName = districtName;
-	}
-
-	public Integer getDataVersion() {
-		return dataVersion;
-	}
-
-	public void setDataVersion(Integer dataVersion) {
-		this.dataVersion = dataVersion;
-	}
-
-	public String getSystemName() {
-		return systemName;
-	}
-
-	public void setSystemName(String systemName) {
-		this.systemName = systemName;
-	}
-
-	public String getDataYear() {
-		return dataYear;
-	}
-
-	public void setDataYear(String dataYear) {
-		this.dataYear = dataYear;
-	}
-
-	public Integer getLimit() {
-		return limit;
-	}
-
-	public void setLimit(Integer limit) {
-		this.limit = limit;
-	}
-
-	public Integer getOffset() {
-		return offset;
-	}
-
-	public void setOffset(Integer offset) {
-		this.offset = offset;
-	}
-
-	public Integer getTotalLimit() {
-		return totalLimit;
-	}
-
-	public void setTotalLimit(Integer totalLimit) {
-		this.totalLimit = totalLimit;
-	}
-
-	public Integer getPriorTableSize() {
-		return priorTableSize;
-	}
-
-	public void setPriorTableSize(Integer priorTableSize) {
-		this.priorTableSize = priorTableSize;
-	}
-
-	/**
-	 * @return the keyQuery
-	 */
-	public String getKeyQuery() {
-		return keyQuery;
-	}
-
-	/**
-	 * @param keyQuery the keyQuery to set
-	 */
-	public void setKeyQuery(String keyQuery) {
-		this.keyQuery = keyQuery;
-	}
-
-	/**
-	 * @return the array
-	 */
-	public String[] getArray() {
-		return array;
-	}
-
-	/**
-	 * @param array the array to set
-	 */
-	public void setArray(String[] array) {
-		this.array = array;
-	}
-	
-}
+package com.platform.entities;
+
+import java.util.List;
+
+public class PagerOptions {
+	private Integer currentPageNum; //当前页码
+
+	private String dataType; //数据类型
+
+	private String submittedBatch;  //数据批次
+ 
+	private String cityName;  //城市名称
+
+	private String districtName; //区县名
+
+	private Integer dataVersion;  //数据版本
+
+	private String systemName;  //系统名称
+
+	private String dataYear; // 数据年度
+
+	private Integer limit; //一次查询返回记录条数
+	
+	private Integer offset; // 查询偏移量:起始id
+	
+	private Integer totalLimit; //当前页前面已有多少条数据
+	
+	private Integer priorTableSize; //前一次操作一页显示的数据条数
+	
+	private String keyQuery;
+	
+	private String[] array;
+	
+	public Integer getCurrentPageNum() {
+		return currentPageNum;
+	}
+
+	public void setCurrentPageNum(Integer currentPageNum) {
+		this.currentPageNum = currentPageNum;
+	}
+
+	public String getDataType() {
+		return dataType;
+	}
+
+	public void setDataType(String dataType) {
+		this.dataType = dataType;
+	}
+
+	public String getSubmittedBatch() {
+		return submittedBatch;
+	}
+
+	public void setSubmittedBatch(String submittedBatch) {
+		this.submittedBatch = submittedBatch;
+	}
+
+	public String getCityName() {
+		return cityName;
+	}
+
+	public void setCityName(String cityName) {
+		this.cityName = cityName;
+	}
+
+	public String getDistrictName() {
+		return districtName;
+	}
+
+	public void setDistrictName(String districtName) {
+		this.districtName = districtName;
+	}
+
+	public Integer getDataVersion() {
+		return dataVersion;
+	}
+
+	public void setDataVersion(Integer dataVersion) {
+		this.dataVersion = dataVersion;
+	}
+
+	public String getSystemName() {
+		return systemName;
+	}
+
+	public void setSystemName(String systemName) {
+		this.systemName = systemName;
+	}
+
+	public String getDataYear() {
+		return dataYear;
+	}
+
+	public void setDataYear(String dataYear) {
+		this.dataYear = dataYear;
+	}
+
+	public Integer getLimit() {
+		return limit;
+	}
+
+	public void setLimit(Integer limit) {
+		this.limit = limit;
+	}
+
+	public Integer getOffset() {
+		return offset;
+	}
+
+	public void setOffset(Integer offset) {
+		this.offset = offset;
+	}
+
+	public Integer getTotalLimit() {
+		return totalLimit;
+	}
+
+	public void setTotalLimit(Integer totalLimit) {
+		this.totalLimit = totalLimit;
+	}
+
+	public Integer getPriorTableSize() {
+		return priorTableSize;
+	}
+
+	public void setPriorTableSize(Integer priorTableSize) {
+		this.priorTableSize = priorTableSize;
+	}
+
+	/**
+	 * @return the keyQuery
+	 */
+	public String getKeyQuery() {
+		return keyQuery;
+	}
+
+	/**
+	 * @param keyQuery the keyQuery to set
+	 */
+	public void setKeyQuery(String keyQuery) {
+		this.keyQuery = keyQuery;
+	}
+
+	/**
+	 * @return the array
+	 */
+	public String[] getArray() {
+		return array;
+	}
+
+	/**
+	 * @param array the array to set
+	 */
+	public void setArray(String[] array) {
+		this.array = array;
+	}
+	
+}
diff --git a/src/com/platform/entities/RegionalismEntity.java b/src/com/platform/entities/RegionalismEntity.java
index ba1b7f2b..ad494fca 100644
--- a/src/com/platform/entities/RegionalismEntity.java
+++ b/src/com/platform/entities/RegionalismEntity.java
@@ -1,53 +1,53 @@
-package com.platform.entities;
-
-public class RegionalismEntity {
-	
-	private String code;
-	
-	private String cityName;
-	
-	private String districtName;
-
-	/**
-	 * @return the code
-	 */
-	public String getCode() {
-		return code;
-	}
-
-	/**
-	 * @param code the code to set
-	 */
-	public void setCode(String code) {
-		this.code = code;
-	}
-
-	/**
-	 * @return the cityName
-	 */
-	public String getCityName() {
-		return cityName;
-	}
-
-	/**
-	 * @param cityName the cityName to set
-	 */
-	public void setCityName(String cityName) {
-		this.cityName = cityName;
-	}
-
-	/**
-	 * @return the districtName
-	 */
-	public String getDistrictName() {
-		return districtName;
-	}
-
-	/**
-	 * @param districtName the districtName to set
-	 */
-	public void setDistrictName(String districtName) {
-		this.districtName = districtName;
-	}
-
-}
+package com.platform.entities;
+
+public class RegionalismEntity {
+	
+	private String code;
+	
+	private String cityName;
+	
+	private String districtName;
+
+	/**
+	 * @return the code
+	 */
+	public String getCode() {
+		return code;
+	}
+
+	/**
+	 * @param code the code to set
+	 */
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	/**
+	 * @return the cityName
+	 */
+	public String getCityName() {
+		return cityName;
+	}
+
+	/**
+	 * @param cityName the cityName to set
+	 */
+	public void setCityName(String cityName) {
+		this.cityName = cityName;
+	}
+
+	/**
+	 * @return the districtName
+	 */
+	public String getDistrictName() {
+		return districtName;
+	}
+
+	/**
+	 * @param districtName the districtName to set
+	 */
+	public void setDistrictName(String districtName) {
+		this.districtName = districtName;
+	}
+
+}
diff --git a/src/com/platform/entities/SimpleConfigParamsBean.java b/src/com/platform/entities/SimpleConfigParamsBean.java
index 520d5ee7..6453a5a7 100644
--- a/src/com/platform/entities/SimpleConfigParamsBean.java
+++ b/src/com/platform/entities/SimpleConfigParamsBean.java
@@ -1,44 +1,44 @@
-package com.platform.entities;
-
-public class SimpleConfigParamsBean {
-	private String masterUrl;
-
-	private String oracleUserName;
-
-	private String oraclePassword;
-
-	private String oracleDBName;
-
-	public String getMasterUrl() {
-		return masterUrl;
-	}
-
-	public void setMasterUrl(String masterUrl) {
-		this.masterUrl = masterUrl;
-	}
-
-	public String getOracleUserName() {
-		return oracleUserName;
-	}
-
-	public void setOracleUserName(String oracleUserName) {
-		this.oracleUserName = oracleUserName;
-	}
-
-	public String getOraclePassword() {
-		return oraclePassword;
-	}
-
-	public void setOraclePassword(String oraclePassword) {
-		this.oraclePassword = oraclePassword;
-	}
-
-	public String getOracleDBName() {
-		return oracleDBName;
-	}
-
-	public void setOracleDBName(String oracleDBName) {
-		this.oracleDBName = oracleDBName;
-	}	
-
-}
+package com.platform.entities;
+
+public class SimpleConfigParamsBean {
+	private String masterUrl;
+
+	private String oracleUserName;
+
+	private String oraclePassword;
+
+	private String oracleDBName;
+
+	public String getMasterUrl() {
+		return masterUrl;
+	}
+
+	public void setMasterUrl(String masterUrl) {
+		this.masterUrl = masterUrl;
+	}
+
+	public String getOracleUserName() {
+		return oracleUserName;
+	}
+
+	public void setOracleUserName(String oracleUserName) {
+		this.oracleUserName = oracleUserName;
+	}
+
+	public String getOraclePassword() {
+		return oraclePassword;
+	}
+
+	public void setOraclePassword(String oraclePassword) {
+		this.oraclePassword = oraclePassword;
+	}
+
+	public String getOracleDBName() {
+		return oracleDBName;
+	}
+
+	public void setOracleDBName(String oracleDBName) {
+		this.oracleDBName = oracleDBName;
+	}	
+
+}
diff --git a/src/com/platform/entities/SystemEntity.java b/src/com/platform/entities/SystemEntity.java
index 6ac6cfb8..40eb0750 100644
--- a/src/com/platform/entities/SystemEntity.java
+++ b/src/com/platform/entities/SystemEntity.java
@@ -1,37 +1,37 @@
-package com.platform.entities;
-
-public class SystemEntity {
-
-	private int code;
-	
-	private String systemName;
-
-	/**
-	 * @return the code
-	 */
-	public int getCode() {
-		return code;
-	}
-
-	/**
-	 * @param code the code to set
-	 */
-	public void setCode(int code) {
-		this.code = code;
-	}
-
-	/**
-	 * @return the systemName
-	 */
-	public String getSystemName() {
-		return systemName;
-	}
-
-	/**
-	 * @param systemName the systemName to set
-	 */
-	public void setSystemName(String systemName) {
-		this.systemName = systemName;
-	}
-	
-}
+package com.platform.entities;
+
+public class SystemEntity {
+
+	private int code;
+	
+	private String systemName;
+
+	/**
+	 * @return the code
+	 */
+	public int getCode() {
+		return code;
+	}
+
+	/**
+	 * @param code the code to set
+	 */
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	/**
+	 * @return the systemName
+	 */
+	public String getSystemName() {
+		return systemName;
+	}
+
+	/**
+	 * @param systemName the systemName to set
+	 */
+	public void setSystemName(String systemName) {
+		this.systemName = systemName;
+	}
+	
+}
diff --git a/src/com/platform/entities/VolumeEntity.java b/src/com/platform/entities/VolumeEntity.java
index 13b4eb27..ae2604ea 100644
--- a/src/com/platform/entities/VolumeEntity.java
+++ b/src/com/platform/entities/VolumeEntity.java
@@ -1,162 +1,162 @@
-
-/**
- * 文件名   :   VolumeEntity.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  chen
- * 版本       :   <版本>
- * 修改时间:      2016年9月9日
- * 修改内容:      <修改内容>
- */
-package com.platform.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * <一句话功能简述> gfs的 volume 对象
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月9日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-
-public class VolumeEntity {
-
-	/** volume总大小  */
-	private double allSize;
-	
-	/** volume已使用大小  */
-	private double usedSize;
-	
-	/** volume名称  */
-	private String name;
-	
-	/** 挂载点  */
-	private String path;
-	
-	/**  * exist,正常返回状态Started,Stopped,Created */
-	private String status;
-	
-	private String type;
-	
-	/** volume树形目录  */
-	private List<FolderNode> folder = new ArrayList<FolderNode>();
-	
-	/** volume的 块  */
-	private List<Brick> brick = new ArrayList<Brick>();
-
-	/**
-	 * @return the allSize
-	 */
-	public double getAllSize() {
-		return allSize;
-	}
-
-	/**
-	 * @param allSize the allSize to set
-	 */
-	public void setAllSize(double allSize) {
-		this.allSize = allSize;
-	}
-
-	/**
-	 * @return the usedSize
-	 */
-	public double getUsedSize() {
-		return usedSize;
-	}
-
-	/**
-	 * @param usedSize the usedSize to set
-	 */
-	public void setUsedSize(double usedSize) {
-		this.usedSize = usedSize;
-	}
-
-	/**
-	 * @return the name
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * @param name the name to set
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * @return the path
-	 */
-	public String getPath() {
-		return path;
-	}
-
-	/**
-	 * @param path the path to set
-	 */
-	public void setPath(String path) {
-		this.path = path;
-	}
-
-	/**
-	 * @return the status
-	 */
-	public String getStatus() {
-		return status;
-	}
-
-	/**
-	 * @param status the status to set
-	 */
-	public void setStatus(String status) {
-		this.status = status;
-	}
-
-	/**
-	 * @return the type
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * @param type the type to set
-	 */
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	/**
-	 * @return the folder
-	 */
-	public List<FolderNode> getFolder() {
-		return folder;
-	}
-
-	/**
-	 * @param folder the folder to set
-	 */
-	public void setFolder(List<FolderNode> folder) {
-		this.folder = folder;
-	}
-
-	/**
-	 * @return the brick
-	 */
-	public List<Brick> getBrick() {
-		return brick;
-	}
-
-	/**
-	 * @param brick the brick to set
-	 */
-	public void setBrick(List<Brick> brick) {
-		this.brick = brick;
-	}
-
-}
+
+/**
+ * 文件名   :   VolumeEntity.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  chen
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月9日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.entities;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <一句话功能简述> gfs的 volume 对象
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月9日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+
+public class VolumeEntity {
+
+	/** volume总大小  */
+	private double allSize;
+	
+	/** volume已使用大小  */
+	private double usedSize;
+	
+	/** volume名称  */
+	private String name;
+	
+	/** 挂载点  */
+	private String path;
+	
+	/**  * exist,正常返回状态Started,Stopped,Created */
+	private String status;
+	
+	private String type;
+	
+	/** volume树形目录  */
+	private List<FolderNode> folder = new ArrayList<FolderNode>();
+	
+	/** volume的 块  */
+	private List<Brick> brick = new ArrayList<Brick>();
+
+	/**
+	 * @return the allSize
+	 */
+	public double getAllSize() {
+		return allSize;
+	}
+
+	/**
+	 * @param allSize the allSize to set
+	 */
+	public void setAllSize(double allSize) {
+		this.allSize = allSize;
+	}
+
+	/**
+	 * @return the usedSize
+	 */
+	public double getUsedSize() {
+		return usedSize;
+	}
+
+	/**
+	 * @param usedSize the usedSize to set
+	 */
+	public void setUsedSize(double usedSize) {
+		this.usedSize = usedSize;
+	}
+
+	/**
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * @param name the name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * @return the path
+	 */
+	public String getPath() {
+		return path;
+	}
+
+	/**
+	 * @param path the path to set
+	 */
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+	/**
+	 * @return the status
+	 */
+	public String getStatus() {
+		return status;
+	}
+
+	/**
+	 * @param status the status to set
+	 */
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/**
+	 * @param type the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	/**
+	 * @return the folder
+	 */
+	public List<FolderNode> getFolder() {
+		return folder;
+	}
+
+	/**
+	 * @param folder the folder to set
+	 */
+	public void setFolder(List<FolderNode> folder) {
+		this.folder = folder;
+	}
+
+	/**
+	 * @return the brick
+	 */
+	public List<Brick> getBrick() {
+		return brick;
+	}
+
+	/**
+	 * @param brick the brick to set
+	 */
+	public void setBrick(List<Brick> brick) {
+		this.brick = brick;
+	}
+
+}
diff --git a/src/com/platform/entities/volumeMoveForm.java b/src/com/platform/entities/volumeMoveForm.java
new file mode 100644
index 00000000..f824d783
--- /dev/null
+++ b/src/com/platform/entities/volumeMoveForm.java
@@ -0,0 +1,54 @@
+package com.platform.entities;
+
+import java.util.List;
+
+public class volumeMoveForm {
+	
+	private String name;
+	
+	private FolderNode selectNode;
+	
+	private List<DataInfoEntity> selectItems;
+
+	/**
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * @param name the name to set
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * @return the selectNode
+	 */
+	public FolderNode getSelectNode() {
+		return selectNode;
+	}
+
+	/**
+	 * @param selectNode the selectNode to set
+	 */
+	public void setSelectNode(FolderNode selectNode) {
+		this.selectNode = selectNode;
+	}
+
+	/**
+	 * @return the selectItems
+	 */
+	public List<DataInfoEntity> getSelectItems() {
+		return selectItems;
+	}
+
+	/**
+	 * @param selectItems the selectItems to set
+	 */
+	public void setSelectItems(List<DataInfoEntity> selectItems) {
+		this.selectItems = selectItems;
+	}
+}
diff --git a/src/com/platform/glusterfs/CheckoutMD5.java b/src/com/platform/glusterfs/CheckoutMD5.java
index d0be3dad..810ec443 100644
--- a/src/com/platform/glusterfs/CheckoutMD5.java
+++ b/src/com/platform/glusterfs/CheckoutMD5.java
@@ -1,106 +1,106 @@
-package com.platform.glusterfs;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.aspectj.weaver.ast.And;
-
-import com.mysql.jdbc.log.Log;
-import com.platform.utils.Constant;
-
-public class CheckoutMD5 {
-	public static Logger log = Logger.getLogger(CheckoutMD5.class);
-	String sourcePath;
-	String destPath;
-	String dataName;
-	// String cmd_crateSourceMD5File="find "+sourcePath+dataName+"/app/ -type f
-	// -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt";
-	String cmd_getSourceMD5File;
-	// String cmd_crateDestMD5File="find "+destPath+dataName+"/app/ -type f
-	// -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt";
-	String cmd_getDestMD5File;
-	Map<String, String> source_md5 = new HashMap<String, String>();
-	Map<String, String> dest_md5 = new HashMap<String, String>();
-
-	public CheckoutMD5() {
-		// TODO Auto-generated constructor stub
-	}
-
-	public CheckoutMD5(String sourcePath, String destPath, String dataName) {
-		// TODO Auto-generated constructor stub
-		this.sourcePath = sourcePath;
-		this.destPath = destPath;
-		this.dataName = dataName;
-		cmd_getSourceMD5File = "find " + sourcePath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort ";
-		cmd_getDestMD5File = "find " + destPath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort ";
-	}
-
-	/**
-	 * 文件夹校验 校验sourcePath和destPath是否完全相同,如果相同,返回1;
-	 * 如果不相同,返回0,如果获取文件MD5出错,返回-1;如何源文件不存在返回-2;目标文件不存在,返回-3;
-	 * 
-	 * @param sourcePath
-	 * @param destPath
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int checkoutMD5Folder(String sourcePath, String destPath) {
-		log.info("start checkout md5 "+sourcePath+" and "+ destPath);
-		List<String> wrong_files = new ArrayList<String>();
-		String source_cmd = "find " + sourcePath + " -type f -print0 | xargs -0 md5sum";
-		String dest_cmd = "find " + destPath + " -type f -print0 | xargs -0 md5sum";
-		List<String> sourceReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(source_cmd);
-		if (sourceReStrings == null || sourceReStrings.size() == 0) {
-			log.error("get " + sourcePath + " MD5 error!");
-			return -1;
-		}
-		if(sourceReStrings.get(0).contains(Constant.noSuchFile)){
-			log.error(sourcePath+" is not exist!");
-			return -2;
-		}
-		List<String> destReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(dest_cmd);
-		if (destReStrings == null || destReStrings.size() == 0) {
-			log.error("get " + destReStrings + " MD5 error!");
-			return -1;
-		}
-		if(destReStrings.get(0).contains(Constant.noSuchFile)){
-			log.error(destPath+" is not exist!");
-			return -3;
-		}
-		Map<String, String> source_md5 = new HashMap<String, String>();
-		Map<String, String> dest_md5 = new HashMap<String, String>();
-		for (String line : sourceReStrings) {
-			String[] lines = line.split("  ");
-			String key = lines[1].replace(sourcePath, "").trim();
-			String value = lines[0].trim();
-			source_md5.put(key, value);
-		}
-		for (String line : destReStrings) {
-			String[] lines = line.split("  ");
-			String key = lines[1].replace(destPath, "").trim();
-			String value = lines[0].trim();
-			dest_md5.put(key, value);
-		}
-		for (Map.Entry<String, String> mapEntry : source_md5.entrySet()) {
-			if (!(dest_md5.containsKey(mapEntry.getKey())
-					&& dest_md5.get(mapEntry.getKey()).equals(mapEntry.getValue()))) {
-				
-				log.info(sourcePath + " and " + destPath + " is not same!");
-				return 0;
-				// System.out.println(mapEntry.getKey());
-			}
-
-		}
-
-		log.info(sourcePath + " and " + destPath + " is  same!");
-		return 1;
-	}
-
-	public static void main(String[] args) {
-		CheckoutMD5 checkoutMD5 = new CheckoutMD5();
-		System.out.println(checkoutMD5.checkoutMD5Folder("/home/v1_copy","/home/ubuntu"));
-	}
-}
+package com.platform.glusterfs;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.aspectj.weaver.ast.And;
+
+import com.mysql.jdbc.log.Log;
+import com.platform.utils.Constant;
+
+public class CheckoutMD5 {
+	public static Logger log = Logger.getLogger(CheckoutMD5.class);
+	String sourcePath;
+	String destPath;
+	String dataName;
+	// String cmd_crateSourceMD5File="find "+sourcePath+dataName+"/app/ -type f
+	// -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt";
+	String cmd_getSourceMD5File;
+	// String cmd_crateDestMD5File="find "+destPath+dataName+"/app/ -type f
+	// -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt";
+	String cmd_getDestMD5File;
+	Map<String, String> source_md5 = new HashMap<String, String>();
+	Map<String, String> dest_md5 = new HashMap<String, String>();
+
+	public CheckoutMD5() {
+		// TODO Auto-generated constructor stub
+	}
+
+	public CheckoutMD5(String sourcePath, String destPath, String dataName) {
+		// TODO Auto-generated constructor stub
+		this.sourcePath = sourcePath;
+		this.destPath = destPath;
+		this.dataName = dataName;
+		cmd_getSourceMD5File = "find " + sourcePath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort ";
+		cmd_getDestMD5File = "find " + destPath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort ";
+	}
+
+	/**
+	 * 文件夹校验 校验sourcePath和destPath是否完全相同,如果相同,返回1;
+	 * 如果不相同,返回0,如果获取文件MD5出错,返回-1;如何源文件不存在返回-2;目标文件不存在,返回-3;
+	 * 
+	 * @param sourcePath
+	 * @param destPath
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int checkoutMD5Folder(String sourcePath, String destPath) {
+		log.info("start checkout md5 "+sourcePath+" and "+ destPath);
+		List<String> wrong_files = new ArrayList<String>();
+		String source_cmd = "find " + sourcePath + " -type f -print0 | xargs -0 md5sum";
+		String dest_cmd = "find " + destPath + " -type f -print0 | xargs -0 md5sum";
+		List<String> sourceReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(source_cmd);
+		if (sourceReStrings == null || sourceReStrings.size() == 0) {
+			log.error("get " + sourcePath + " MD5 error!");
+			return -1;
+		}
+		if(sourceReStrings.get(0).contains(Constant.noSuchFile)){
+			log.error(sourcePath+" is not exist!");
+			return -2;
+		}
+		List<String> destReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(dest_cmd);
+		if (destReStrings == null || destReStrings.size() == 0) {
+			log.error("get " + destReStrings + " MD5 error!");
+			return -1;
+		}
+		if(destReStrings.get(0).contains(Constant.noSuchFile)){
+			log.error(destPath+" is not exist!");
+			return -3;
+		}
+		Map<String, String> source_md5 = new HashMap<String, String>();
+		Map<String, String> dest_md5 = new HashMap<String, String>();
+		for (String line : sourceReStrings) {
+			String[] lines = line.split("  ");
+			String key = lines[1].replace(sourcePath, "").trim();
+			String value = lines[0].trim();
+			source_md5.put(key, value);
+		}
+		for (String line : destReStrings) {
+			String[] lines = line.split("  ");
+			String key = lines[1].replace(destPath, "").trim();
+			String value = lines[0].trim();
+			dest_md5.put(key, value);
+		}
+		for (Map.Entry<String, String> mapEntry : source_md5.entrySet()) {
+			if (!(dest_md5.containsKey(mapEntry.getKey())
+					&& dest_md5.get(mapEntry.getKey()).equals(mapEntry.getValue()))) {
+				
+				log.info(sourcePath + " and " + destPath + " is not same!");
+				return 0;
+				// System.out.println(mapEntry.getKey());
+			}
+
+		}
+
+		log.info(sourcePath + " and " + destPath + " is  same!");
+		return 1;
+	}
+
+	public static void main(String[] args) {
+		CheckoutMD5 checkoutMD5 = new CheckoutMD5();
+		System.out.println(checkoutMD5.checkoutMD5Folder("/home/v1_copy","/home/ubuntu"));
+	}
+}
diff --git a/src/com/platform/glusterfs/ClusterInfo.java b/src/com/platform/glusterfs/ClusterInfo.java
index add5e191..793b86ca 100644
--- a/src/com/platform/glusterfs/ClusterInfo.java
+++ b/src/com/platform/glusterfs/ClusterInfo.java
@@ -1,124 +1,124 @@
-
-
-package com.platform.glusterfs;
-
-
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-
-import com.platform.utils.Constant;
-
-/**
- * 获取集群信息
- * @author    liliy
- * @version   [版本号,2016年9月12日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-public class ClusterInfo {
-	public static Logger log = Logger.getLogger(ClusterInfo.class);
-
-	/**
-	 * 获取集群节点信息
-	 * 如果获取不正常,则返回null,如果获取正常,返回map表示节点ip和ip的状态
-	 * 如果ip在集群中且联通状态为PeerinCluster(Connected)
-	 * 如果ip在集群中且但不连通为PeerinCluster(Disconnected)
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public Map<String, String> showClusterInfo() {
-		log.info("get cluster info");
-		Map<String, String> peerIps = new HashMap<String, String>();
-
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(Constant.glusterPeerStatus);
-		if (reStrings == null) {
-			log.error("1101 command get result is null");
-			return null;
-		}
-		if (reStrings.size() == 0) {
-			log.error("1102 command get result is nothing");
-			return null;
-		}
-
-		if (!(reStrings.get(0).split(":")[0].contains("Number of Peers"))) {
-
-			log.error("1103 get result string wrong");
-			return null;
-		}
-		
-
-		// System.out.print(reStrings.get(0));
-
-		int flag = 0;
-		String ipString = "";
-		String state = "";
-		for (Iterator it2 = reStrings.iterator(); it2.hasNext();) {
-			String line = (String) it2.next();
-			line=line.replaceAll(" +", " ");
-			String keyValue[] = line.split(":");
-			if (keyValue[0].equals("Hostname")) {
-
-				if (keyValue.length < 2) {
-					log.error("1105 command get result is wrong");
-					continue;
-				}
-
-				ipString = keyValue[1].replaceAll(" ", "");
-				flag = 1;
-			} else if (flag == 1 && keyValue[0].equals("State")) {
-
-				if (keyValue.length < 2) {
-					log.error("1106 command get result is wrong");
-					continue;
-				}
-
-				state = keyValue[1].replaceAll(" ", "");
-				flag = 0;
-				peerIps.put(ipString, state);
-			}
-
-		}
-		return peerIps;
-	}
- 
-	/**
-	 * 根据给定的ip获的ip的状态,即是否在集群中并联通
-	 * 如果ip不在集群中,返回null
-	 * 如果ip在集群中且联通状态为PeerinCluster(Connected)
-	 * 如果ip在集群中且但不连通为PeerinCluster(Disconnected)
-	 * @param peerip
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public String getPeerStatus(String peerip){
-		Map<String, String> peerIps=showClusterInfo();
-		if(peerIps==null || peerIps.size()==0){
-			return null;
-		}
-		
-		if(peerip.equals(Constant.hostIp)){
-			return Constant.peerincluster_connected;
-		}
-		if(!peerIps.containsKey(peerip)){
-			return Constant.peerNotinCluster;
-		}
-		return peerIps.get(peerip);
-	}
-	
-	
-	public static void main(String[] args) {
-//		PropertyConfigurator.configure("log4j.properties");
-		System.out.println(new ClusterInfo().showClusterInfo());
-		System.out.println(new ClusterInfo().getPeerStatus("192.168.0.116"));
-	}
-}
-
-
+
+
+package com.platform.glusterfs;
+
+
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+
+import com.platform.utils.Constant;
+
+/**
+ * 获取集群信息
+ * @author    liliy
+ * @version   [版本号,2016年9月12日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+public class ClusterInfo {
+	public static Logger log = Logger.getLogger(ClusterInfo.class);
+
+	/**
+	 * 获取集群节点信息
+	 * 如果获取不正常,则返回null,如果获取正常,返回map表示节点ip和ip的状态
+	 * 如果ip在集群中且联通状态为PeerinCluster(Connected)
+	 * 如果ip在集群中且但不连通为PeerinCluster(Disconnected)
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public Map<String, String> showClusterInfo() {
+		log.info("get cluster info");
+		Map<String, String> peerIps = new HashMap<String, String>();
+
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(Constant.glusterPeerStatus);
+		if (reStrings == null) {
+			log.error("1101 command get result is null");
+			return null;
+		}
+		if (reStrings.size() == 0) {
+			log.error("1102 command get result is nothing");
+			return null;
+		}
+
+		if (!(reStrings.get(0).split(":")[0].contains("Number of Peers"))) {
+
+			log.error("1103 get result string wrong");
+			return null;
+		}
+		
+
+		// System.out.print(reStrings.get(0));
+
+		int flag = 0;
+		String ipString = "";
+		String state = "";
+		for (Iterator it2 = reStrings.iterator(); it2.hasNext();) {
+			String line = (String) it2.next();
+			line=line.replaceAll(" +", " ");
+			String keyValue[] = line.split(":");
+			if (keyValue[0].equals("Hostname")) {
+
+				if (keyValue.length < 2) {
+					log.error("1105 command get result is wrong");
+					continue;
+				}
+
+				ipString = keyValue[1].replaceAll(" ", "");
+				flag = 1;
+			} else if (flag == 1 && keyValue[0].equals("State")) {
+
+				if (keyValue.length < 2) {
+					log.error("1106 command get result is wrong");
+					continue;
+				}
+
+				state = keyValue[1].replaceAll(" ", "");
+				flag = 0;
+				peerIps.put(ipString, state);
+			}
+
+		}
+		return peerIps;
+	}
+ 
+	/**
+	 * 根据给定的ip获的ip的状态,即是否在集群中并联通
+	 * 如果ip不在集群中,返回null
+	 * 如果ip在集群中且联通状态为PeerinCluster(Connected)
+	 * 如果ip在集群中且但不连通为PeerinCluster(Disconnected)
+	 * @param peerip
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public String getPeerStatus(String peerip){
+		Map<String, String> peerIps=showClusterInfo();
+		if(peerIps==null || peerIps.size()==0){
+			return null;
+		}
+		
+		if(peerip.equals(Constant.hostIp)){
+			return Constant.peerincluster_connected;
+		}
+		if(!peerIps.containsKey(peerip)){
+			return Constant.peerNotinCluster;
+		}
+		return peerIps.get(peerip);
+	}
+	
+	
+	public static void main(String[] args) {
+//		PropertyConfigurator.configure("log4j.properties");
+		System.out.println(new ClusterInfo().showClusterInfo());
+		System.out.println(new ClusterInfo().getPeerStatus("192.168.0.116"));
+	}
+}
+
+
diff --git a/src/com/platform/glusterfs/CopyData.java b/src/com/platform/glusterfs/CopyData.java
index e1e64cc8..0b226c77 100644
--- a/src/com/platform/glusterfs/CopyData.java
+++ b/src/com/platform/glusterfs/CopyData.java
@@ -1,143 +1,143 @@
-
-package com.platform.glusterfs;
-
-import java.util.List;
-
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-import org.junit.Test;
-
-import com.platform.utils.Constant;
-
-
-/**
- * <一句话功能简述> 复制数据
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-
-public class CopyData {
-	public static Logger log = Logger.getLogger(CopyData.class);
-
-	public int copyVolumeFiles(String sourceVolumeName, String destVolumeName, String fileName) {
-		log.info("start copy " + fileName + " from " + sourceVolumeName + " to " + destVolumeName);
-		int status = -1;
-		/**
-		 * get mount point of volumeName
-		 */
-		
-		String sourceFolderName = sourceVolumeName;
-		String destFolderName = destVolumeName;
-		status = copyFolderFilesAnyway(sourceFolderName, destFolderName, fileName);
-		return status;
-	}
-	
-	/**
-	 * 将sourceFolderName拷贝到destFolderName
-	 * 如果拷贝正常返回1,如果sourceFolderName不存在返回-2 ,如果destFolderName不存在返回-3
-	 * @param sourceFolderName
-	 * @param destFolderName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int copyFolder(String sourceFolderName, String destFolderName) {
-		createFolders(destFolderName);
-		int progress=0;
-		log.info("start copy "  + sourceFolderName + " to " + destFolderName);
-		ShowData showData=new ShowData();
-		Map<String,String> reStrings=showData.showFolderData(destFolderName);
-		if(reStrings==null){
-			log.info("3201 "+destFolderName+" is not exists");
-			return -3;
-		}
-		
-		reStrings=showData.showFolderData(sourceFolderName);
-		if(reStrings==null){
-			log.info("3202 "+sourceFolderName+" is not exists");
-			return -2;
-		}
-		String command = "cp -r " + sourceFolderName+" "+destFolderName;
-		
-		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
-	
-		log.info("copy " + sourceFolderName + " to " + destFolderName + "  running"); 
-		return 1;
-	}
-
-	/**
-	 * -1 :error; -2: the filename is not exists ;-3 :destFolderName ; 1: right 
-	 * not exists
-	 * 
-	 * @param folderName
-	 * @param fileName
-	 * @return
-	 */
-	public int copyFolderFiles(String sourceFolderName, String destFolderName, String fileName) {
-		int progress=0;
-		log.info("start copy " + fileName + " from " + sourceFolderName + " to " + destFolderName);
-		ShowData showData=new ShowData();
-		Map<String,String> reStrings=showData.showFolderData(destFolderName);
-		if(reStrings==null){
-			log.info("3201 "+destFolderName+" is not exists");
-			return -3;
-		}
-		
-		reStrings=showData.showFolderData(sourceFolderName+"/"+fileName);
-		if(reStrings==null){
-			log.info("3202 "+sourceFolderName+"/"+fileName+" is not exists");
-			return -2;
-		}
-		String command = "cp -r " + sourceFolderName + "/" + fileName+" "+destFolderName;
-		/*
-		 * RunCommand runCommand = new RunCommand();
-		 
-		List<String> reStrings = runCommand.runCommandWait(command);
-		*/
-		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
-	
-		log.info("copy " + sourceFolderName +"/" + fileName+ " to " + destFolderName + "  running"); 
-		return 1;
-	}
-	
-	/** 不管目的路径存在与否,强制拷贝
-	 * @param sourceFolderName
-	 * @param destFolderName
-	 * @param fileName
-	 * @return
-	 */
-	public int copyFolderFilesAnyway(String sourceFolderName, String destFolderName, String fileName) {
-		createFolders(destFolderName);
-		int result = copyFolderFiles(sourceFolderName, destFolderName, fileName);
-		return result;
-	}
-	
-	public int createFolders(String folder){
-		log.info("create "+folder);
-		String splitFolder[]=folder.substring(1).split("/");
-		String cmd="mkdir ";
-		for(String one:splitFolder){
-			 cmd+="/"+one.replaceAll(" ", "");
-			 Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		}
-		return 1;
-	}
-	
-	@Test
-	public void testcreateFolders() {
-		
-		createFolders("/aaa/vvv/ddd/www/rrrr");
-	}
-
-	//@Test
-	public void testCopyFolderFiles() {
-		
-		copyFolderFiles("/home", "/home/ubuntu", "system_data");
-	}
-}
-
-
+
+package com.platform.glusterfs;
+
+import java.util.List;
+
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+import org.junit.Test;
+
+import com.platform.utils.Constant;
+
+
+/**
+ * <一句话功能简述> 复制数据
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+
+public class CopyData {
+	public static Logger log = Logger.getLogger(CopyData.class);
+
+	public int copyVolumeFiles(String sourceVolumeName, String destVolumeName, String fileName) {
+		log.info("start copy " + fileName + " from " + sourceVolumeName + " to " + destVolumeName);
+		int status = -1;
+		/**
+		 * get mount point of volumeName
+		 */
+		
+		String sourceFolderName = sourceVolumeName;
+		String destFolderName = destVolumeName;
+		status = copyFolderFilesAnyway(sourceFolderName, destFolderName, fileName);
+		return status;
+	}
+	
+	/**
+	 * 将sourceFolderName拷贝到destFolderName
+	 * 如果拷贝正常返回1,如果sourceFolderName不存在返回-2 ,如果destFolderName不存在返回-3
+	 * @param sourceFolderName
+	 * @param destFolderName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int copyFolder(String sourceFolderName, String destFolderName) {
+		createFolders(destFolderName);
+		int progress=0;
+		log.info("start copy "  + sourceFolderName + " to " + destFolderName);
+		ShowData showData=new ShowData();
+		Map<String,String> reStrings=showData.showFolderData(destFolderName);
+		if(reStrings==null){
+			log.info("3201 "+destFolderName+" is not exists");
+			return -3;
+		}
+		
+		reStrings=showData.showFolderData(sourceFolderName);
+		if(reStrings==null){
+			log.info("3202 "+sourceFolderName+" is not exists");
+			return -2;
+		}
+		String command = "cp -r " + sourceFolderName+" "+destFolderName;
+		
+		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
+	
+		log.info("copy " + sourceFolderName + " to " + destFolderName + "  running"); 
+		return 1;
+	}
+
+	/**
+	 * -1 :error; -2: the filename is not exists ;-3 :destFolderName ; 1: right 
+	 * not exists
+	 * 
+	 * @param folderName
+	 * @param fileName
+	 * @return
+	 */
+	public int copyFolderFiles(String sourceFolderName, String destFolderName, String fileName) {
+		int progress=0;
+		log.info("start copy " + fileName + " from " + sourceFolderName + " to " + destFolderName);
+		ShowData showData=new ShowData();
+		Map<String,String> reStrings=showData.showFolderData(destFolderName);
+		if(reStrings==null){
+			log.info("3201 "+destFolderName+" is not exists");
+			return -3;
+		}
+		
+		reStrings=showData.showFolderData(sourceFolderName+"/"+fileName);
+		if(reStrings==null){
+			log.info("3202 "+sourceFolderName+"/"+fileName+" is not exists");
+			return -2;
+		}
+		String command = "cp -r " + sourceFolderName + "/" + fileName+" "+destFolderName;
+		/*
+		 * RunCommand runCommand = new RunCommand();
+		 
+		List<String> reStrings = runCommand.runCommandWait(command);
+		*/
+		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
+	
+		log.info("copy " + sourceFolderName +"/" + fileName+ " to " + destFolderName + "  running"); 
+		return 1;
+	}
+	
+	/** 不管目的路径存在与否,强制拷贝
+	 * @param sourceFolderName
+	 * @param destFolderName
+	 * @param fileName
+	 * @return
+	 */
+	public int copyFolderFilesAnyway(String sourceFolderName, String destFolderName, String fileName) {
+		createFolders(destFolderName);
+		int result = copyFolderFiles(sourceFolderName, destFolderName, fileName);
+		return result;
+	}
+	
+	public int createFolders(String folder){
+		log.info("create "+folder);
+		String splitFolder[]=folder.substring(1).split("/");
+		String cmd="mkdir ";
+		for(String one:splitFolder){
+			 cmd+="/"+one.replaceAll(" ", "");
+			 Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		}
+		return 1;
+	}
+	
+	@Test
+	public void testcreateFolders() {
+		
+		createFolders("/aaa/vvv/ddd/www/rrrr");
+	}
+
+	//@Test
+	public void testCopyFolderFiles() {
+		
+		copyFolderFiles("/home", "/home/ubuntu", "system_data");
+	}
+}
+
+
diff --git a/src/com/platform/glusterfs/GetTreeData.java b/src/com/platform/glusterfs/GetTreeData.java
index 81f3ba5b..4fce07bc 100644
--- a/src/com/platform/glusterfs/GetTreeData.java
+++ b/src/com/platform/glusterfs/GetTreeData.java
@@ -1,125 +1,125 @@
-
-
-package com.platform.glusterfs;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.junit.Test;
-import com.platform.entities.FolderNode;
-import com.platform.utils.Constant;
-import com.platform.utils.FileOperateHelper;
-import com.platform.utils.GanymedSSH;
-
-/**
- * <一句话功能简述> 获得GFS某个目录下的子目录
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-public class GetTreeData {
-	ShowData showData = new ShowData();
-
-	/**
-	 * <一句话功能简述> 获得所以子目录
-	 * <功能详细描述>
-	 * @param name
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public FolderNode getDatas(String name) {
-		String names[]=name.split("/");
-		String only_name=names[names.length-1];
-		FolderNode fileNode = new FolderNode(only_name);
-		fileNode.setPath(name);
-		Map<String, String> files = showData.showFolderData(name);
-		if(files==null || files.size()==0){
-			return fileNode;
-		}
-		fileNode.setIsFolder(files.size());
-		List<FolderNode> list = new ArrayList<FolderNode>();
-		fileNode.setChildNodes(list);
-		for (Map.Entry<String, String> entry : files.entrySet()) {
-			if(entry.getKey().equals("app")){
-				continue;
-			}
-			int number = Integer.parseInt(entry.getValue());
-			if (number == 1) {
-				fileNode.getChildNodes().add(new FolderNode(entry.getKey(), number));
-			}
-			if (number > 1) {
-				FolderNode temp=getDatas(name+"/"+entry.getKey());
-				fileNode.getChildNodes().add(temp);
-			}
-		}
-
-		return fileNode;
-	}
-	
-	
-	/**
-	 * <一句话功能简述> 获得所以子目录
-	 * <功能详细描述>
-	 * @param name
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public FolderNode getDatasWithShell(String name) {
-		if(name.endsWith("/")){
-			name=name.substring(0, name.length()-1);
-		}
-//		String names[]=name.split("/");
-//		String only_name=names[names.length-1];
-		FolderNode fileNode = new FolderNode(name);
-		fileNode.setPath(name);
-		
-//		String shellComment= new FileOperateHelper().fileReaderAndendline(Constant.fileGetTreeData);
-		String shellComment= Constant.strGetTreeData;
-		String sh_path="/getTreedata.sh";
-		String cmd="echo -e \""+shellComment+"\" > "+sh_path+" & chmod +x "+sh_path;
-		Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-//		Map<String, String> files = showData.showFolderData(name);
-		List<String> files=Constant.ganymedSSH.execCmdWaitAcquiescent(sh_path+" "+name);
-		if(files==null){
-			return null;
-		}
-		if(files.size()==0){
-			return fileNode;
-		}
-		for(String file:files){
-			
-		}
-
-		return fileNode;
-	}
-	@Test
-	public void test_getTreeData() {
-	
-		GetTreeData getTreeData=new GetTreeData();
-//		FolderNode fileOrFolder=getTreeData.getDatas("/home/gfs_ftp_point");
-		FolderNode fileOrFolder=getTreeData.getDatasWithShell("/home/gfs_ftp_point/");
-		System.out.println(fileOrFolder);
-	}
-}
-/*
-class FileOrFolder {
-	String name;
-	int isFolder; // 1 is file and other integer is folder show children number
-	List<FileOrFolder> children;
-
-	public FileOrFolder(String name) {
-		// TODO Auto-generated constructor stub
-		this.name = name;
-	}
-
-	public FileOrFolder(String name, int isFolder) {
-		// TODO Auto-generated constructor stub
-		this.name = name;
-		this.isFolder = isFolder;
-	}
-}
-
-*/
+
+
+package com.platform.glusterfs;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+import com.platform.entities.FolderNode;
+import com.platform.utils.Constant;
+import com.platform.utils.FileOperateHelper;
+import com.platform.utils.GanymedSSH;
+
+/**
+ * <一句话功能简述> 获得GFS某个目录下的子目录
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+public class GetTreeData {
+	ShowData showData = new ShowData();
+
+	/**
+	 * <一句话功能简述> 获得所以子目录
+	 * <功能详细描述>
+	 * @param name
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public FolderNode getDatas(String name) {
+		String names[]=name.split("/");
+		String only_name=names[names.length-1];
+		FolderNode fileNode = new FolderNode(only_name);
+		fileNode.setPath(name);
+		Map<String, String> files = showData.showFolderData(name);
+		if(files==null || files.size()==0){
+			return fileNode;
+		}
+		fileNode.setIsFolder(files.size());
+		List<FolderNode> list = new ArrayList<FolderNode>();
+		fileNode.setChildNodes(list);
+		for (Map.Entry<String, String> entry : files.entrySet()) {
+			if(entry.getKey().equals("app")){
+				continue;
+			}
+			int number = Integer.parseInt(entry.getValue());
+			if (number == 1) {
+				fileNode.getChildNodes().add(new FolderNode(entry.getKey(), number));
+			}
+			if (number > 1) {
+				FolderNode temp=getDatas(name+"/"+entry.getKey());
+				fileNode.getChildNodes().add(temp);
+			}
+		}
+
+		return fileNode;
+	}
+	
+	
+	/**
+	 * <一句话功能简述> 获得所以子目录
+	 * <功能详细描述>
+	 * @param name
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public FolderNode getDatasWithShell(String name) {
+		if(name.endsWith("/")){
+			name=name.substring(0, name.length()-1);
+		}
+//		String names[]=name.split("/");
+//		String only_name=names[names.length-1];
+		FolderNode fileNode = new FolderNode(name);
+		fileNode.setPath(name);
+		
+//		String shellComment= new FileOperateHelper().fileReaderAndendline(Constant.fileGetTreeData);
+		String shellComment= Constant.strGetTreeData;
+		String sh_path="/getTreedata.sh";
+		String cmd="echo -e \""+shellComment+"\" > "+sh_path+" & chmod +x "+sh_path;
+		Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+//		Map<String, String> files = showData.showFolderData(name);
+		List<String> files=Constant.ganymedSSH.execCmdWaitAcquiescent(sh_path+" "+name);
+		if(files==null){
+			return null;
+		}
+		if(files.size()==0){
+			return fileNode;
+		}
+		for(String file:files){
+			
+		}
+
+		return fileNode;
+	}
+	@Test
+	public void test_getTreeData() {
+	
+		GetTreeData getTreeData=new GetTreeData();
+//		FolderNode fileOrFolder=getTreeData.getDatas("/home/gfs_ftp_point");
+		FolderNode fileOrFolder=getTreeData.getDatasWithShell("/home/gfs_ftp_point/");
+		System.out.println(fileOrFolder);
+	}
+}
+/*
+class FileOrFolder {
+	String name;
+	int isFolder; // 1 is file and other integer is folder show children number
+	List<FileOrFolder> children;
+
+	public FileOrFolder(String name) {
+		// TODO Auto-generated constructor stub
+		this.name = name;
+	}
+
+	public FileOrFolder(String name, int isFolder) {
+		// TODO Auto-generated constructor stub
+		this.name = name;
+		this.isFolder = isFolder;
+	}
+}
+
+*/
diff --git a/src/com/platform/glusterfs/RemoveData.java b/src/com/platform/glusterfs/RemoveData.java
index 6f854b26..e06cebd3 100644
--- a/src/com/platform/glusterfs/RemoveData.java
+++ b/src/com/platform/glusterfs/RemoveData.java
@@ -1,56 +1,56 @@
-package com.platform.glusterfs;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-import org.junit.Test;
-
-import com.platform.utils.Constant;
-
-
-
-public class RemoveData {
-	
-	public static Logger log =   Logger.getLogger ( RemoveData.class); 
-	
-	
-	/**
-	 * -1 :error; 0: the filename is not exists ; 1:  right
-	 * @param folderName
-	 * @param fileName
-	 * @return
-	 */
-	public int deleteFolder(String folderName){
-		log.info("start delete "+folderName);	
-		
-		ShowData showData=new ShowData();
-		Map<String,String> reStrings=showData.showFolderData(folderName);
-		
-		if(reStrings==null){
-			log.error("3301 "+folderName+" is not exists");
-			return -1;
-		}
-		
-		String command="rm -r "+folderName;
-				
-//		int status=runCommand.runCommand(command);
-		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
-		
-		log.info("delete "+folderName+" running");	
-		return 1;
-	}
-	
-	
-	
-   
-	@Test
-	public void testDeleteFolderFiles() {
-		PropertyConfigurator.configure("log4j.properties");
-		deleteFolder("/home/ubuntu");
-	}
-	
-}
+package com.platform.glusterfs;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+import org.junit.Test;
+
+import com.platform.utils.Constant;
+
+
+
+public class RemoveData {
+	
+	public static Logger log =   Logger.getLogger ( RemoveData.class); 
+	
+	
+	/**
+	 * -1 :error; 0: the filename is not exists ; 1:  right
+	 * @param folderName
+	 * @param fileName
+	 * @return
+	 */
+	public int deleteFolder(String folderName){
+		log.info("start delete "+folderName);	
+		
+		ShowData showData=new ShowData();
+		Map<String,String> reStrings=showData.showFolderData(folderName);
+		
+		if(reStrings==null){
+			log.error("3301 "+folderName+" is not exists");
+			return -1;
+		}
+		
+		String command="rm -r "+folderName;
+				
+//		int status=runCommand.runCommand(command);
+		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
+		
+		log.info("delete "+folderName+" running");	
+		return 1;
+	}
+	
+	
+	
+   
+	@Test
+	public void testDeleteFolderFiles() {
+		PropertyConfigurator.configure("log4j.properties");
+		deleteFolder("/home/ubuntu");
+	}
+	
+}
diff --git a/src/com/platform/glusterfs/SetCluster.java b/src/com/platform/glusterfs/SetCluster.java
index 8f260e5a..598b8753 100644
--- a/src/com/platform/glusterfs/SetCluster.java
+++ b/src/com/platform/glusterfs/SetCluster.java
@@ -1,67 +1,67 @@
-
-package com.platform.glusterfs;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.hamcrest.core.Is;
-
-import com.platform.utils.Constant;
-import com.platform.utils.Support;
-
-public class SetCluster {
-	public static Logger log =   Logger.getLogger ( SetCluster.class); 
-	
-	/**
-	 * 向集群中添加节点
-	 * 返回1表示添加成功;-1表示ip不合法,-2 表示出错,0表示添加失败
-	 * @param peerip
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int probePeer(String peerip){
-		if(!Support.checkIP(peerip)){
-			log.error(peerip +"is illegal!" );
-			return -1;
-		}
-		String cmd="gluster peer probe "+peerip;
-		List<String> reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		if(reStrings==null || reStrings.size()==0){
-			log.error("detach error! ");
-			return -2;
-		}
-		if(reStrings.contains(Constant.success)){
-			log.info("probe success!");
-			return 1;
-		}
-		log.info("probe failed!");
-		return 0;
-	}
-	
-	/**
-	 * 删除集群中节点
-	 * 返回1表示删除成功;-1表示ip不合法,-2 表示出错,0表示添加失败
-	 * @param peerip
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int detachPeer(String peerip){
-		if(!Support.checkIP(peerip)){
-			log.error(peerip +"is illegal!" );
-			return -1;
-		}
-		String cmd="gluster peer detach "+peerip;
-		List<String> reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		if(reStrings==null || reStrings.size()==0){
-			log.error("detach error! ");
-			return -2;
-		}
-		if(reStrings.contains(Constant.success)){
-			log.info("detach success!");
-			return 1;
-		}
-		log.info("detach failed!");
-		return 0;
-	}
-}
-
+
+package com.platform.glusterfs;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.hamcrest.core.Is;
+
+import com.platform.utils.Constant;
+import com.platform.utils.Support;
+
+public class SetCluster {
+	public static Logger log =   Logger.getLogger ( SetCluster.class); 
+	
+	/**
+	 * 向集群中添加节点
+	 * 返回1表示添加成功;-1表示ip不合法,-2 表示出错,0表示添加失败
+	 * @param peerip
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int probePeer(String peerip){
+		if(!Support.checkIP(peerip)){
+			log.error(peerip +"is illegal!" );
+			return -1;
+		}
+		String cmd="gluster peer probe "+peerip;
+		List<String> reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		if(reStrings==null || reStrings.size()==0){
+			log.error("detach error! ");
+			return -2;
+		}
+		if(reStrings.contains(Constant.success)){
+			log.info("probe success!");
+			return 1;
+		}
+		log.info("probe failed!");
+		return 0;
+	}
+	
+	/**
+	 * 删除集群中节点
+	 * 返回1表示删除成功;-1表示ip不合法,-2 表示出错,0表示添加失败
+	 * @param peerip
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int detachPeer(String peerip){
+		if(!Support.checkIP(peerip)){
+			log.error(peerip +"is illegal!" );
+			return -1;
+		}
+		String cmd="gluster peer detach "+peerip;
+		List<String> reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		if(reStrings==null || reStrings.size()==0){
+			log.error("detach error! ");
+			return -2;
+		}
+		if(reStrings.contains(Constant.success)){
+			log.info("detach success!");
+			return 1;
+		}
+		log.info("detach failed!");
+		return 0;
+	}
+}
+
diff --git a/src/com/platform/glusterfs/SetVolume.java b/src/com/platform/glusterfs/SetVolume.java
index 6b4dddcc..8a361b18 100644
--- a/src/com/platform/glusterfs/SetVolume.java
+++ b/src/com/platform/glusterfs/SetVolume.java
@@ -1,540 +1,540 @@
-
-/**
- * @author 李乾坤
- * 进行volume的一系列操作,如创建、开启停止volume,为volume添加或删除brick
- */
-package com.platform.glusterfs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-import org.junit.Test;
-
-import com.platform.utils.Constant;
-
-public class SetVolume {
-	public static Logger log = Logger.getLogger(SetVolume.class);
-
-	/**
-	 * 创建volume 返回值:创建并挂载成功 1 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3
-	 * -4:类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误
-	 * 
-	 * @param volumeName
-	 * @param count
-	 * @param type
-	 * @param bricks
-	 * @param mountPoint
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int createVolume(String volumeName, int count, String type, List bricks, String mountPoint) {
-		log.info("Creat new volume");
-
-		// 判断创建volume的条件是否满足
-		int able = isAbleCreateVolume(volumeName, count, type, bricks, mountPoint);
-
-		if (able == 1) {
-			String command = null;
-			// 将brics从List变量中提取出来并连接成可以在命令行中使用的格式
-			String commandarg = concat(bricks);
-
-			/*
-			 * verify the type
-			 */
-			if (type.equals(Constant.distributed)) {
-				command = "gluster volume create " + volumeName + " " + commandarg + "force";
-			} else if (type.equals(Constant.replica) || type.equals(Constant.stripe)) {
-				command = "gluster volume create " + volumeName + " " + type + " " + count + " " + commandarg + "force";
-			}
-			
-			// 执行命令
-			List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-
-			// 创建成功时返回信息格式:volume create: volumename success:
-			if (reStrings == null || reStrings.size() == 0) {
-				log.error("3106 " + command + " run return error");
-				return -7;
-			}
-			if (reStrings.get(0).contains("volume create: " + volumeName + ": " + "success:")) {
-				log.info("create volume " + volumeName + " successed!");
-				// 创建成功则启动并进行挂载
-				if (startVolume(volumeName) == 0) {
-					log.info("start volume " + volumeName + " successed!");
-					
-					log.info("create "+mountPoint);
-					new CopyData().createFolders(mountPoint);
-					
-					// 进行挂载
-					String command3 = "mount -t glusterfs " + Constant.hostIp + ":" + volumeName + " " + mountPoint;
-					List<String> reStrings3 = Constant.ganymedSSH.execCmdWaitAcquiescent(command3);
-					
-					if (reStrings3.size() == 0 || reStrings.get(0).contains("GlusterFS is already mounted")) {
-						log.info("mount point successed!");
-						String addRecord = "echo \"" + volumeName + ":" + mountPoint + "\" >> " + Constant.MountRecord;
-						Constant.ganymedSSH.execCmdNoWaitAcquiescent(addRecord);
-						return 1;
-					}
-				}
-			} else {
-				log.error("3104 volume create failed with error" + reStrings.get(0));
-				// System.out.println(reStrings.get(0));
-				return -7;
-			}
-			return 1;
-		} else {
-			log.error("给出的参数不满足创建条件");
-			// System.out.println("给出的参数不满足创建条件");
-			return able;
-		}
-
-	}
-
-	/**
-	 * 删除volume 1 表示成功 ;-1表示volume name不存在;-2表示停止volume 失败;
-	 * -3表示删除失败,-4表示/gfsAutoMount/mountPoint.record文件不存在
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int deleteVolume(String volumeName) {
-		int status = 0;
-		VolumeInfo volumeInfo = new VolumeInfo();
-		List<String> volumeNames = volumeInfo.showAllVolumeName();
-		if (!volumeNames.contains(volumeName)) {
-			log.error("3801 " + volumeName + " is not exists !");
-			return -1;
-		}
-
-		List<String> mountPoints = volumeInfo.getVolumeMountPoint(volumeName);
-
-		String cmd = "cat " + Constant.MountRecord;
-		List<String> mountRecord = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-
-		if (stopVolume(volumeName) != 0) {
-
-			return -2;
-		}
-
-		String command = "echo -e \"y\"| gluster volume delete " + volumeName;
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-		if (reStrings == null || reStrings.size() == 0
-				|| !(reStrings.get(0).contains("volume delete: " + volumeName + ": success"))) {
-			log.error("3803 : delete volume " + volumeName + " failed !");
-			return -3;
-		}
-		log.info("delete " + volumeName + " successed!");
-		if (mountRecord.size() != 0 && mountPoints.get(0).contains(Constant.noSuchFile)) {
-			log.error("3804 : " + Constant.MountRecord + " is not exits");
-			return -4;
-		}
-		for (String mountPoint : mountPoints) {
-			command = "umount -l " + mountPoint;
-			Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
-			log.info("umount  " + mountPoint + " successed!");
-			String oneRecord=volumeName+":"+mountPoint;
-			if (mountRecord.contains(oneRecord)) {
-				mountRecord.remove(oneRecord);
-			}
-
-		}
-		String newRecords="";
-		for(String one:mountRecord){
-			newRecords+=one+"\n";
-		}
-		command="echo -ne \""+newRecords+"\" > "+Constant.MountRecord;
-		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
-		return 1;
-	}
-
-	/**
-	 * 为指定的volume添加brick,参数中需要指定类型、数量等 返回值:1成功 ;其他失败
-	 * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符
-	 * 
-	 * @param volumeName
-	 * @param brickName
-	 * @param count
-	 * @param type
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int addBrickVolume(String volumeName, List<String> brickName, int count, String type) {
-		// 检查是否满足添加bricks的条件
-		int able = isAble(volumeName, count, type, brickName);
-		if (able != 1) {
-			return able;
-		}
-
-		String command = "";
-		log.info("add brick to the specified volume");
-
-		String brick = concat(brickName);
-
-		if (type.equals(Constant.distributed))
-			command = "gluster volume add-brick " + volumeName + " " + brick + "force";
-		else if (type.equals(Constant.replica))
-			command = "gluster volume add-brick " + volumeName + " " + "replica " + count + " " + brick + "force";
-		else if (type.equals(Constant.stripe))
-			command = "gluster volume add-brick " + volumeName + " " + "stripe " + count + " " + brick + "force";
-
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-
-		// 添加成功的返回信息是:volume add-brick: success
-		if (reStrings != null && reStrings.size() > 0 && reStrings.get(0).contains("volume add-brick: success")) {
-			log.info("添加brick成功!");
-			return 1;
-		} else {
-			log.error("3205 add brick failed,please check the system");
-			// System.out.println("3202 add brick failed,please check the
-			// system");
-			return -5;
-		}
-	}
-
-	/**
-	 * 为指定的volume删除brick,参数中需要指定类型、数量等 返回值:1 成功 ;其他 失败
-	 * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符
-	 * 
-	 * @param volumeName
-	 * @param brickName
-	 * @param count
-	 * @param type
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public int deleteBrickVolume(String volumeName, List<String> brickName, int count, String type) {
-		int able = isAble(volumeName, count, type, brickName);
-
-		if (able != 1) {
-			return able;
-		}
-		String command = null;
-
-		log.info("delete brick of the specified volume");
-
-		String brick = concat(brickName);
-
-		if (type.equals(Constant.distributed)) {
-			command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " " + brick + " force";
-		} else if (type.equals(Constant.replica)) {
-			command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " repli " + count + " " + brick
-					+ " force";
-		} else if (type.equals(Constant.stripe)) {
-			command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " stripe " + count + " " + brick
-					+ " force";
-		}
-
-		if (command == null) {
-			log.error("3305 remove brick failed,please check the system");
-			return -5;
-		}
-		log.info("即将执行删除命令");
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-		// System.out.println(reStrings);
-		log.info("删除命令执行完毕");
-
-		// 删除成功的返回信息是“volume remove-brick: success”
-		if (reStrings.get(0).contains("volume remove-brick: success")) {
-			{
-				log.info("删除brick成功");
-				return 1;
-			}
-		} else {
-			log.error("3305 remove brick failed,please check the system");
-
-			return -5;
-		}
-
-	}
-
-	/*
-	 * 停止指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败
-	 * 需要先检查volume是否存在,然后判断volume的状态是否已经是停止状态
-	 */
-	public int stopVolume(String volumeName) {
-		log.info("stop volume");
-
-		// 首先需要判断volume是否存在,调用其他函数返回所有volume的名字
-		boolean volumeExist = false;
-
-		List<String> volume = new VolumeInfo().showAllVolumeName();
-		for (String temp : volume) {
-			if (temp.equals(volumeName)) {
-				volumeExist = true;
-				break;
-			}
-		}
-
-		if (!volumeExist) {
-			// volume不存在
-			log.error("3501 the volume doesnot exist");
-			System.out.println("3501 the volume doesnot exist");
-			return -1;
-		} else {
-			// volume存在,则需判断volume的状态是否已经为“stop”
-			if (new VolumeInfo().getVolumeStatus(volumeName).equals("Stopped")) {
-				log.error("3502 the volume is already stoped");
-				System.out.println("3502 the volume is already stoped");
-				return -1;
-			} else {
-				String command = "echo -e \"y\"| gluster volume stop " + volumeName;
-				List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-
-				// 标记操作结果:operation = 1 操作成功
-				// operation = 0 操作失败
-				int operation = 0;
-				for (String temp2 : reStrings) {
-					if (temp2.contains("volume stop: " + volumeName + ": " + "success")) {
-						operation = 1;
-						break;
-					}
-					System.out.println("operation: " + operation);
-				}
-
-				if (operation == 1) {
-					return 0;
-				} else {
-					log.error("3503 stop " + volumeName + " failed");
-					System.out.println("3503 stop " + volumeName + " failed");
-					return -1;
-				}
-
-			}
-		}
-	}
-
-	/*
-	 * 开启指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败
-	 * 需要先检查volume是否存在,然后判断volume的状态是否已经是开启状态
-	 */
-	public int startVolume(String volumeName) {
-		log.info("start volume");
-		boolean volumeExist = false;
-		List<String> volume = new VolumeInfo().showAllVolumeName();
-
-		for (String temp : volume) {
-			if (temp.equals(volumeName)) {
-				volumeExist = true;
-				break;
-			}
-		}
-
-		if (volumeExist) {
-			if (!(new VolumeInfo().getVolumeStatus(volumeName).equals("Started"))) {
-				String command = "gluster volume start " + volumeName;
-
-				int operation = 0;
-
-				// 执行命令
-				List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-				for (String temp2 : reStrings) {
-					if (temp2.equals("volume start: " + volumeName + ": " + "success")) {
-						operation = 1;
-					}
-				}
-
-				if (operation == 1) {
-					return 0;
-				} else {
-					log.error("3602 start volume failed");
-					System.out.println("3602 start volume failed");
-					return -1;
-				}
-			} else {
-				log.error("volume已经开启");
-				System.out.println("volume已经开启");
-				return -1;
-			}
-		} else {
-			log.error("3601 the volume does not exist");
-			// System.out.println("3601 the volume does not exist");
-			return -1;
-		}
-	}
-
-	// 需要将存于List变量中的brick的位置组装成可以在glusterfs命令行中直接使用的格式
-	public String concat(List<String> brickName) {
-		StringBuffer result = new StringBuffer();
-		int len = brickName.size();
-		for (int i = 0; i < len; i++) {
-			result.append(brickName.get(i));
-			result.append(" ");
-		}
-		return result.toString();
-	}
-
-	/*
-	 * 只在创建volume时使用此函数 创建volume时对不同数据卷,brick的数量需要满足和count的关系
-	 * 首先判断它们是否满足关系,在不满足的关系的情况下是肯定无法完成操作的 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3
-	 * -4 :类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误
-	 */
-	public int isAbleCreateVolume(String volumeName, int count, String type, List<String> bricks, String mountPoint) {
-		int status = 0;
-
-		int length = bricks.size();
-
-		if (type.equals(Constant.distributed)) {
-			if (count != 0) {
-				log.error("3101 the kind of distributed requires the arg of count to be 0");
-				return -2;
-			}
-		}
-		if (type.equals(Constant.stripe)) {
-			if (length % count != 0) {
-				log.error("3102 the number of bricks 	 should be the same as  or the times of the stripe count");
-				return -3;
-			}
-		}
-		if (type.equals(Constant.replica)) {
-			if ((length % count) != 0) {
-				log.error(
-						"3103 the number of bricks should be the same as the replicate count or the times of replicate count");
-				return -4;
-			}
-		}
-
-		Map peer_status = new ClusterInfo().showClusterInfo();
-		peer_status.put(Constant.hostIp, Constant.peerincluster_connected);
-		for (String brick : bricks) {
-			brick = brick.split(":")[0];
-			if (!(peer_status.containsKey(brick) && peer_status.get(brick).equals(Constant.peerincluster_connected))) {
-				log.error("3105 birck " + brick + " ip is not in cluster");
-				return -1;
-			}
-
-		}
-
-		List<String> volumeNames = new VolumeInfo().showAllVolumeName();
-		if (volumeNames == null) {
-			log.error("3108 showAllVolumeName return error");
-			return -7;
-		}
-		if (volumeNames.contains(volumeName)) {
-			log.error("3106 " + volumeName + " is already exists! ");
-			return -5;
-		}
-
-		/*
-		Map datas = new ShowData().showFolderData(mountPoint);
-		if (datas != null && datas.size() > 0) {
-			log.error("3107 " + mountPoint + " is not exists or not empty ! ");
-			return -6;
-		}
-		*/
-		return 1;
-	}
-
-	/**
-	 * 添加或删除volume的brick时,首先需要判断volume是否存在,然后需要判断volume类型、count及brick数目
-	 * 
-	 * @param volumeName
-	 * @param count
-	 * @param type
-	 * @param bricks
-	 * @return 1 满足条件,可以添加;-1 :volume name is not exists;-2,-3,-4 类型与brick数量不匹配;
-	 */
-	public int isAble(String volumeName, int count, String type, List bricks) {
-		List<String> volumeNames = new VolumeInfo().showAllVolumeName();
-
-		if (!volumeNames.contains(volumeName)) {
-			log.error("3201:" + volumeName + " is not exists! ");
-			return -1;
-		}
-
-		int length = bricks.size();
-		if (type.equals("distribute")) {
-			if (count == 0)
-				return 1;
-			else {
-				log.error("3202: the kind of distributed requires the arg of count to be 0");
-				// System.out.println(" the kind of distributed requires the
-				// arg of count to be 0");
-				return -2;
-			}
-		}
-
-		if (type.equals("stripe")) {
-			if (length % count == 0)
-				return 1;
-			else {
-				log.error("3203: the number of bricks should be the same as or the times of the stripe count");
-				// System.out.println(" the number of bricks should be the
-				// same as or the times of the stripe count");
-				return -3;
-
-			}
-		}
-		if (type.equals("replicate")) {
-			if ((length % count) == 0)
-				return 1;
-			else {
-				log.error(
-						"3204: the number of bricks should be the same as the replicate count or the times of replicate count");
-
-				return -4;
-			}
-		}
-
-		return 1;
-	}
-
-	@Test
-	public void test_deleteVolume(){
-		System.out.println(deleteVolume("lili_test1"));
-	}
-//	@Test
-	public void test_createVolume(){
-		List<String> bricksToCreate = new ArrayList<String>();
-		bricksToCreate.add("192.168.0.110:/lili_test1");
-		bricksToCreate.add("192.168.0.116:/lili_test1");
-		System.out.println(createVolume("lili_test1", 0, "distributed", bricksToCreate, "/home/lili_test1_point"));
-	}
-	public static void main(String[] args) {
-		SetVolume setVolume = new SetVolume();
-		int operation = 0;
-		// PropertyConfigurator.configure("log4j.properties");
-		// TODO Auto-generated method stub
-		// 测试创建volume的代码
-
-//		List<String> bricksToCreate = new ArrayList<String>();
-//		bricksToCreate.add("192.168.0.110:/v2");
-//		bricksToCreate.add("192.168.0.116:/v2");
-//		operation = setVolume.createVolume("v2", 0, "distributed", bricksToCreate, "/home/v2_point");
-		// operation = setVolume.deleteVolume("v3");
-		//
-		// // 以下是测试添加brick的代码
-		//
-		// List<String> bricksToAdd = new ArrayList<String>();
-		// bricksToAdd.add("192.168.191.23:/v3");
-		// operation = setVolume.addBrickVolume("v3", bricksToAdd, 0,
-		// "distribute");
-		// System.out.println(operation);
-
-		// 以下代码是测试删除brick的代码
-		// List<String> bricksToAdd= new ArrayList<String>();
-		// bricksToAdd.add("192.168.191.23:/v3");
-		// operation =
-		// setVolume.deleteBrickVolume("v3",bricksToAdd,0,"distribute");
-		// System.out.println(operation);
-		// 以下是测试start volume的代码
-		// String volumeToStart = "testcreate" ;
-		// int startOperation = startVolume(volumeToStart);
-		// System.out.println(startOperation);
-		// 以下是测试stop volume
-		String volumeToStop = "v3";
-		// int startOperation = setVolume.stopVolume(volumeToStop);
-		// 以下是测试创建volume并完成挂载的代码
-		// List<String> bricksToCreate= new ArrayList<String>();
-		// bricksToCreate.add("192.168.214.135:/home/create");
-		// bricksToCreate.add("192.168.214.138:/home/create");
-		//
-		// int operation =
-		// createVolume("createAndmount",0,"distribute",bricksToCreate,"/mnt/create");
-		// System.out.println(operation);
-	}
-}
+
+/**
+ * @author 李乾坤
+ * 进行volume的一系列操作,如创建、开启停止volume,为volume添加或删除brick
+ */
+package com.platform.glusterfs;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+import org.junit.Test;
+
+import com.platform.utils.Constant;
+
+public class SetVolume {
+	public static Logger log = Logger.getLogger(SetVolume.class);
+
+	/**
+	 * 创建volume 返回值:创建并挂载成功 1 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3
+	 * -4:类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误
+	 * 
+	 * @param volumeName
+	 * @param count
+	 * @param type
+	 * @param bricks
+	 * @param mountPoint
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int createVolume(String volumeName, int count, String type, List bricks, String mountPoint) {
+		log.info("Creat new volume");
+
+		// 判断创建volume的条件是否满足
+		int able = isAbleCreateVolume(volumeName, count, type, bricks, mountPoint);
+
+		if (able == 1) {
+			String command = null;
+			// 将brics从List变量中提取出来并连接成可以在命令行中使用的格式
+			String commandarg = concat(bricks);
+
+			/*
+			 * verify the type
+			 */
+			if (type.equals(Constant.distributed)) {
+				command = "gluster volume create " + volumeName + " " + commandarg + "force";
+			} else if (type.equals(Constant.replica) || type.equals(Constant.stripe)) {
+				command = "gluster volume create " + volumeName + " " + type + " " + count + " " + commandarg + "force";
+			}
+			
+			// 执行命令
+			List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+
+			// 创建成功时返回信息格式:volume create: volumename success:
+			if (reStrings == null || reStrings.size() == 0) {
+				log.error("3106 " + command + " run return error");
+				return -7;
+			}
+			if (reStrings.get(0).contains("volume create: " + volumeName + ": " + "success:")) {
+				log.info("create volume " + volumeName + " successed!");
+				// 创建成功则启动并进行挂载
+				if (startVolume(volumeName) == 0) {
+					log.info("start volume " + volumeName + " successed!");
+					
+					log.info("create "+mountPoint);
+					new CopyData().createFolders(mountPoint);
+					
+					// 进行挂载
+					String command3 = "mount -t glusterfs " + Constant.hostIp + ":" + volumeName + " " + mountPoint;
+					List<String> reStrings3 = Constant.ganymedSSH.execCmdWaitAcquiescent(command3);
+					
+					if (reStrings3.size() == 0 || reStrings.get(0).contains("GlusterFS is already mounted")) {
+						log.info("mount point successed!");
+						String addRecord = "echo \"" + volumeName + ":" + mountPoint + "\" >> " + Constant.MountRecord;
+						Constant.ganymedSSH.execCmdNoWaitAcquiescent(addRecord);
+						return 1;
+					}
+				}
+			} else {
+				log.error("3104 volume create failed with error" + reStrings.get(0));
+				// System.out.println(reStrings.get(0));
+				return -7;
+			}
+			return 1;
+		} else {
+			log.error("给出的参数不满足创建条件");
+			// System.out.println("给出的参数不满足创建条件");
+			return able;
+		}
+
+	}
+
+	/**
+	 * 删除volume 1 表示成功 ;-1表示volume name不存在;-2表示停止volume 失败;
+	 * -3表示删除失败,-4表示/gfsAutoMount/mountPoint.record文件不存在
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int deleteVolume(String volumeName) {
+		int status = 0;
+		VolumeInfo volumeInfo = new VolumeInfo();
+		List<String> volumeNames = volumeInfo.showAllVolumeName();
+		if (!volumeNames.contains(volumeName)) {
+			log.error("3801 " + volumeName + " is not exists !");
+			return -1;
+		}
+
+		List<String> mountPoints = volumeInfo.getVolumeMountPoint(volumeName);
+
+		String cmd = "cat " + Constant.MountRecord;
+		List<String> mountRecord = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+
+		if (stopVolume(volumeName) != 0) {
+
+			return -2;
+		}
+
+		String command = "echo -e \"y\"| gluster volume delete " + volumeName;
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+		if (reStrings == null || reStrings.size() == 0
+				|| !(reStrings.get(0).contains("volume delete: " + volumeName + ": success"))) {
+			log.error("3803 : delete volume " + volumeName + " failed !");
+			return -3;
+		}
+		log.info("delete " + volumeName + " successed!");
+		if (mountRecord.size() != 0 && mountPoints.get(0).contains(Constant.noSuchFile)) {
+			log.error("3804 : " + Constant.MountRecord + " is not exits");
+			return -4;
+		}
+		for (String mountPoint : mountPoints) {
+			command = "umount -l " + mountPoint;
+			Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
+			log.info("umount  " + mountPoint + " successed!");
+			String oneRecord=volumeName+":"+mountPoint;
+			if (mountRecord.contains(oneRecord)) {
+				mountRecord.remove(oneRecord);
+			}
+
+		}
+		String newRecords="";
+		for(String one:mountRecord){
+			newRecords+=one+"\n";
+		}
+		command="echo -ne \""+newRecords+"\" > "+Constant.MountRecord;
+		Constant.ganymedSSH.execCmdNoWaitAcquiescent(command);
+		return 1;
+	}
+
+	/**
+	 * 为指定的volume添加brick,参数中需要指定类型、数量等 返回值:1成功 ;其他失败
+	 * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符
+	 * 
+	 * @param volumeName
+	 * @param brickName
+	 * @param count
+	 * @param type
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int addBrickVolume(String volumeName, List<String> brickName, int count, String type) {
+		// 检查是否满足添加bricks的条件
+		int able = isAble(volumeName, count, type, brickName);
+		if (able != 1) {
+			return able;
+		}
+
+		String command = "";
+		log.info("add brick to the specified volume");
+
+		String brick = concat(brickName);
+
+		if (type.equals(Constant.distributed))
+			command = "gluster volume add-brick " + volumeName + " " + brick + "force";
+		else if (type.equals(Constant.replica))
+			command = "gluster volume add-brick " + volumeName + " " + "replica " + count + " " + brick + "force";
+		else if (type.equals(Constant.stripe))
+			command = "gluster volume add-brick " + volumeName + " " + "stripe " + count + " " + brick + "force";
+
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+
+		// 添加成功的返回信息是:volume add-brick: success
+		if (reStrings != null && reStrings.size() > 0 && reStrings.get(0).contains("volume add-brick: success")) {
+			log.info("添加brick成功!");
+			return 1;
+		} else {
+			log.error("3205 add brick failed,please check the system");
+			// System.out.println("3202 add brick failed,please check the
+			// system");
+			return -5;
+		}
+	}
+
+	/**
+	 * 为指定的volume删除brick,参数中需要指定类型、数量等 返回值:1 成功 ;其他 失败
+	 * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符
+	 * 
+	 * @param volumeName
+	 * @param brickName
+	 * @param count
+	 * @param type
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public int deleteBrickVolume(String volumeName, List<String> brickName, int count, String type) {
+		int able = isAble(volumeName, count, type, brickName);
+
+		if (able != 1) {
+			return able;
+		}
+		String command = null;
+
+		log.info("delete brick of the specified volume");
+
+		String brick = concat(brickName);
+
+		if (type.equals(Constant.distributed)) {
+			command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " " + brick + " force";
+		} else if (type.equals(Constant.replica)) {
+			command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " repli " + count + " " + brick
+					+ " force";
+		} else if (type.equals(Constant.stripe)) {
+			command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " stripe " + count + " " + brick
+					+ " force";
+		}
+
+		if (command == null) {
+			log.error("3305 remove brick failed,please check the system");
+			return -5;
+		}
+		log.info("即将执行删除命令");
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+		// System.out.println(reStrings);
+		log.info("删除命令执行完毕");
+
+		// 删除成功的返回信息是“volume remove-brick: success”
+		if (reStrings.get(0).contains("volume remove-brick: success")) {
+			{
+				log.info("删除brick成功");
+				return 1;
+			}
+		} else {
+			log.error("3305 remove brick failed,please check the system");
+
+			return -5;
+		}
+
+	}
+
+	/*
+	 * 停止指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败
+	 * 需要先检查volume是否存在,然后判断volume的状态是否已经是停止状态
+	 */
+	public int stopVolume(String volumeName) {
+		log.info("stop volume");
+
+		// 首先需要判断volume是否存在,调用其他函数返回所有volume的名字
+		boolean volumeExist = false;
+
+		List<String> volume = new VolumeInfo().showAllVolumeName();
+		for (String temp : volume) {
+			if (temp.equals(volumeName)) {
+				volumeExist = true;
+				break;
+			}
+		}
+
+		if (!volumeExist) {
+			// volume不存在
+			log.error("3501 the volume doesnot exist");
+			System.out.println("3501 the volume doesnot exist");
+			return -1;
+		} else {
+			// volume存在,则需判断volume的状态是否已经为“stop”
+			if (new VolumeInfo().getVolumeStatus(volumeName).equals("Stopped")) {
+				log.error("3502 the volume is already stoped");
+				System.out.println("3502 the volume is already stoped");
+				return -1;
+			} else {
+				String command = "echo -e \"y\"| gluster volume stop " + volumeName;
+				List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+
+				// 标记操作结果:operation = 1 操作成功
+				// operation = 0 操作失败
+				int operation = 0;
+				for (String temp2 : reStrings) {
+					if (temp2.contains("volume stop: " + volumeName + ": " + "success")) {
+						operation = 1;
+						break;
+					}
+					System.out.println("operation: " + operation);
+				}
+
+				if (operation == 1) {
+					return 0;
+				} else {
+					log.error("3503 stop " + volumeName + " failed");
+					System.out.println("3503 stop " + volumeName + " failed");
+					return -1;
+				}
+
+			}
+		}
+	}
+
+	/*
+	 * 开启指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败
+	 * 需要先检查volume是否存在,然后判断volume的状态是否已经是开启状态
+	 */
+	public int startVolume(String volumeName) {
+		log.info("start volume");
+		boolean volumeExist = false;
+		List<String> volume = new VolumeInfo().showAllVolumeName();
+
+		for (String temp : volume) {
+			if (temp.equals(volumeName)) {
+				volumeExist = true;
+				break;
+			}
+		}
+
+		if (volumeExist) {
+			if (!(new VolumeInfo().getVolumeStatus(volumeName).equals("Started"))) {
+				String command = "gluster volume start " + volumeName;
+
+				int operation = 0;
+
+				// 执行命令
+				List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+				for (String temp2 : reStrings) {
+					if (temp2.equals("volume start: " + volumeName + ": " + "success")) {
+						operation = 1;
+					}
+				}
+
+				if (operation == 1) {
+					return 0;
+				} else {
+					log.error("3602 start volume failed");
+					System.out.println("3602 start volume failed");
+					return -1;
+				}
+			} else {
+				log.error("volume已经开启");
+				System.out.println("volume已经开启");
+				return -1;
+			}
+		} else {
+			log.error("3601 the volume does not exist");
+			// System.out.println("3601 the volume does not exist");
+			return -1;
+		}
+	}
+
+	// 需要将存于List变量中的brick的位置组装成可以在glusterfs命令行中直接使用的格式
+	public String concat(List<String> brickName) {
+		StringBuffer result = new StringBuffer();
+		int len = brickName.size();
+		for (int i = 0; i < len; i++) {
+			result.append(brickName.get(i));
+			result.append(" ");
+		}
+		return result.toString();
+	}
+
+	/*
+	 * 只在创建volume时使用此函数 创建volume时对不同数据卷,brick的数量需要满足和count的关系
+	 * 首先判断它们是否满足关系,在不满足的关系的情况下是肯定无法完成操作的 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3
+	 * -4 :类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误
+	 */
+	public int isAbleCreateVolume(String volumeName, int count, String type, List<String> bricks, String mountPoint) {
+		int status = 0;
+
+		int length = bricks.size();
+
+		if (type.equals(Constant.distributed)) {
+			if (count != 0) {
+				log.error("3101 the kind of distributed requires the arg of count to be 0");
+				return -2;
+			}
+		}
+		if (type.equals(Constant.stripe)) {
+			if (length % count != 0) {
+				log.error("3102 the number of bricks 	 should be the same as  or the times of the stripe count");
+				return -3;
+			}
+		}
+		if (type.equals(Constant.replica)) {
+			if ((length % count) != 0) {
+				log.error(
+						"3103 the number of bricks should be the same as the replicate count or the times of replicate count");
+				return -4;
+			}
+		}
+
+		Map peer_status = new ClusterInfo().showClusterInfo();
+		peer_status.put(Constant.hostIp, Constant.peerincluster_connected);
+		for (String brick : bricks) {
+			brick = brick.split(":")[0];
+			if (!(peer_status.containsKey(brick) && peer_status.get(brick).equals(Constant.peerincluster_connected))) {
+				log.error("3105 birck " + brick + " ip is not in cluster");
+				return -1;
+			}
+
+		}
+
+		List<String> volumeNames = new VolumeInfo().showAllVolumeName();
+		if (volumeNames == null) {
+			log.error("3108 showAllVolumeName return error");
+			return -7;
+		}
+		if (volumeNames.contains(volumeName)) {
+			log.error("3106 " + volumeName + " is already exists! ");
+			return -5;
+		}
+
+		/*
+		Map datas = new ShowData().showFolderData(mountPoint);
+		if (datas != null && datas.size() > 0) {
+			log.error("3107 " + mountPoint + " is not exists or not empty ! ");
+			return -6;
+		}
+		*/
+		return 1;
+	}
+
+	/**
+	 * 添加或删除volume的brick时,首先需要判断volume是否存在,然后需要判断volume类型、count及brick数目
+	 * 
+	 * @param volumeName
+	 * @param count
+	 * @param type
+	 * @param bricks
+	 * @return 1 满足条件,可以添加;-1 :volume name is not exists;-2,-3,-4 类型与brick数量不匹配;
+	 */
+	public int isAble(String volumeName, int count, String type, List bricks) {
+		List<String> volumeNames = new VolumeInfo().showAllVolumeName();
+
+		if (!volumeNames.contains(volumeName)) {
+			log.error("3201:" + volumeName + " is not exists! ");
+			return -1;
+		}
+
+		int length = bricks.size();
+		if (type.equals("distribute")) {
+			if (count == 0)
+				return 1;
+			else {
+				log.error("3202: the kind of distributed requires the arg of count to be 0");
+				// System.out.println(" the kind of distributed requires the
+				// arg of count to be 0");
+				return -2;
+			}
+		}
+
+		if (type.equals("stripe")) {
+			if (length % count == 0)
+				return 1;
+			else {
+				log.error("3203: the number of bricks should be the same as or the times of the stripe count");
+				// System.out.println(" the number of bricks should be the
+				// same as or the times of the stripe count");
+				return -3;
+
+			}
+		}
+		if (type.equals("replicate")) {
+			if ((length % count) == 0)
+				return 1;
+			else {
+				log.error(
+						"3204: the number of bricks should be the same as the replicate count or the times of replicate count");
+
+				return -4;
+			}
+		}
+
+		return 1;
+	}
+
+	@Test
+	public void test_deleteVolume(){
+		System.out.println(deleteVolume("lili_test1"));
+	}
+//	@Test
+	public void test_createVolume(){
+		List<String> bricksToCreate = new ArrayList<String>();
+		bricksToCreate.add("192.168.0.110:/lili_test1");
+		bricksToCreate.add("192.168.0.116:/lili_test1");
+		System.out.println(createVolume("lili_test1", 0, "distributed", bricksToCreate, "/home/lili_test1_point"));
+	}
+	public static void main(String[] args) {
+		SetVolume setVolume = new SetVolume();
+		int operation = 0;
+		// PropertyConfigurator.configure("log4j.properties");
+		// TODO Auto-generated method stub
+		// 测试创建volume的代码
+
+//		List<String> bricksToCreate = new ArrayList<String>();
+//		bricksToCreate.add("192.168.0.110:/v2");
+//		bricksToCreate.add("192.168.0.116:/v2");
+//		operation = setVolume.createVolume("v2", 0, "distributed", bricksToCreate, "/home/v2_point");
+		// operation = setVolume.deleteVolume("v3");
+		//
+		// // 以下是测试添加brick的代码
+		//
+		// List<String> bricksToAdd = new ArrayList<String>();
+		// bricksToAdd.add("192.168.191.23:/v3");
+		// operation = setVolume.addBrickVolume("v3", bricksToAdd, 0,
+		// "distribute");
+		// System.out.println(operation);
+
+		// 以下代码是测试删除brick的代码
+		// List<String> bricksToAdd= new ArrayList<String>();
+		// bricksToAdd.add("192.168.191.23:/v3");
+		// operation =
+		// setVolume.deleteBrickVolume("v3",bricksToAdd,0,"distribute");
+		// System.out.println(operation);
+		// 以下是测试start volume的代码
+		// String volumeToStart = "testcreate" ;
+		// int startOperation = startVolume(volumeToStart);
+		// System.out.println(startOperation);
+		// 以下是测试stop volume
+		String volumeToStop = "v3";
+		// int startOperation = setVolume.stopVolume(volumeToStop);
+		// 以下是测试创建volume并完成挂载的代码
+		// List<String> bricksToCreate= new ArrayList<String>();
+		// bricksToCreate.add("192.168.214.135:/home/create");
+		// bricksToCreate.add("192.168.214.138:/home/create");
+		//
+		// int operation =
+		// createVolume("createAndmount",0,"distribute",bricksToCreate,"/mnt/create");
+		// System.out.println(operation);
+	}
+}
diff --git a/src/com/platform/glusterfs/ShowData.java b/src/com/platform/glusterfs/ShowData.java
index ff4180ff..0ca8b438 100644
--- a/src/com/platform/glusterfs/ShowData.java
+++ b/src/com/platform/glusterfs/ShowData.java
@@ -1,132 +1,132 @@
-package com.platform.glusterfs;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-
-
-import org.apache.log4j.PropertyConfigurator;
-import org.junit.Test;
-
-import com.platform.utils.Constant;
-
-
-public class ShowData {
-	
-	public static Logger log =   Logger.getLogger ( ShowData.class); 
-
-	/**
-	 * get the data of volumeName Map<string s1,string s2> s1 is data name and s2 is type file or folder
-	 * <功能详细描述>
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public Map<String,String> showVolumeFiles(String volumeName){
-		log.info("start show the data");		
-		Map<String,String> data_type=new HashMap<String, String>();
-		/**
-		 * get mount point of volumeName
-		 */
-		String folderName=volumeName;
-		
-		data_type=showFolderData(volumeName);
-		return data_type;
-}
-	/**
-	 * get the data of folder name
-	 * Map<String,String> is folder name and type 1 is file and others is folder
-
-
-	 * @param FolderName
-	 * @return
-	 */
-	public Map<String,String> showFolderData(String folderName){
-		log.info(" start get "+folderName+" data");		
-
-
-		Map<String,String> data_type=new HashMap<String, String>();
-		String command="ls -l "+folderName;
-		
-		/*
-<<<<<<< HEAD
-		 * RunCommand runCommand=new RunCommand(); List<String>
-		 * reStrings=runCommand.runCommandWait(command);
-		 */
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-		if (reStrings == null) {
-			log.error("2101 command get result is null");
-			return null;
-		}
-		if(reStrings.size()==0){
-			log.info("2102 the folder is empty");
-			return data_type;
-		}
-		if(reStrings.get(0).contains("No such file or directory")){
-			log.info("2103 the "+folderName+" is not exists");
-			return null;
-		}
-		/**
-		 * remove first line total number
-		 */
-		reStrings.remove(0);
-		
-		for(Iterator it2 = reStrings.iterator();it2.hasNext();){
-			String line=(String)it2.next();
-			line=line.replaceAll(" +", " ");
-			String keyValue[]=line.split(" ");
-			if(keyValue.length<9){
-				log.error("2104 "+line+" length is short");
-				continue;
-			}
-			
-			data_type.put(keyValue[8], keyValue[1]);
-						
-		}
-		log.info(" get "+folderName+" data successed");	
-		return data_type;
-	}
-	
-	/**
-	 * 返回folder的大小字节表示
-	 * -2表示获取大小出错,-1表示folder不存在,其他表示folder的大小
-	 * @param folderPath
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public long getFolderSize(String folderPath) {
-		log.info("get " + folderPath + " Size ");
-
-		String command = "du -k -d 0 "+folderPath+" | grep  " + folderPath + "|awk  \'{print $1}\'";
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
-		if(reStrings==null || reStrings.size()==0){
-			log.error("get " + folderPath + " Size error!");
-			return -2;
-		}
-		if (reStrings.get(0).contains(Constant.noSuchFile)) {
-			log.error(folderPath+" is not exists");
-			return -1;
-		} 
-		long size = Long.valueOf(reStrings.get(0));
-		
-
-		return size;
-	}
-	
-	
-	/**
-	 * 
-	 * <一句话功能简述>
-	 * <功能详细描述>
-	 * @see [类、类#方法、类#成员]
-	 */
-	@Test
-	public void testShowData(){
-		
-		System.out.println(showFolderData("/home"));
-
-	}
+package com.platform.glusterfs;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+
+
+import org.apache.log4j.PropertyConfigurator;
+import org.junit.Test;
+
+import com.platform.utils.Constant;
+
+
+public class ShowData {
+	
+	public static Logger log =   Logger.getLogger ( ShowData.class); 
+
+	/**
+	 * get the data of volumeName Map<string s1,string s2> s1 is data name and s2 is type file or folder
+	 * <功能详细描述>
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public Map<String,String> showVolumeFiles(String volumeName){
+		log.info("start show the data");		
+		Map<String,String> data_type=new HashMap<String, String>();
+		/**
+		 * get mount point of volumeName
+		 */
+		String folderName=volumeName;
+		
+		data_type=showFolderData(volumeName);
+		return data_type;
+}
+	/**
+	 * get the data of folder name
+	 * Map<String,String> is folder name and type 1 is file and others is folder
+
+
+	 * @param FolderName
+	 * @return
+	 */
+	public Map<String,String> showFolderData(String folderName){
+		log.info(" start get "+folderName+" data");		
+
+
+		Map<String,String> data_type=new HashMap<String, String>();
+		String command="ls -l "+folderName;
+		
+		/*
+<<<<<<< HEAD
+		 * RunCommand runCommand=new RunCommand(); List<String>
+		 * reStrings=runCommand.runCommandWait(command);
+		 */
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+		if (reStrings == null) {
+			log.error("2101 command get result is null");
+			return null;
+		}
+		if(reStrings.size()==0){
+			log.info("2102 the folder is empty");
+			return data_type;
+		}
+		if(reStrings.get(0).contains("No such file or directory")){
+			log.info("2103 the "+folderName+" is not exists");
+			return null;
+		}
+		/**
+		 * remove first line total number
+		 */
+		reStrings.remove(0);
+		
+		for(Iterator it2 = reStrings.iterator();it2.hasNext();){
+			String line=(String)it2.next();
+			line=line.replaceAll(" +", " ");
+			String keyValue[]=line.split(" ");
+			if(keyValue.length<9){
+				log.error("2104 "+line+" length is short");
+				continue;
+			}
+			
+			data_type.put(keyValue[8], keyValue[1]);
+						
+		}
+		log.info(" get "+folderName+" data successed");	
+		return data_type;
+	}
+	
+	/**
+	 * 返回folder的大小字节表示
+	 * -2表示获取大小出错,-1表示folder不存在,其他表示folder的大小
+	 * @param folderPath
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public long getFolderSize(String folderPath) {
+		log.info("get " + folderPath + " Size ");
+
+		String command = "du -k -d 0 "+folderPath+" | grep  " + folderPath + "|awk  \'{print $1}\'";
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
+		if(reStrings==null || reStrings.size()==0){
+			log.error("get " + folderPath + " Size error!");
+			return -2;
+		}
+		if (reStrings.get(0).contains(Constant.noSuchFile)) {
+			log.error(folderPath+" is not exists");
+			return -1;
+		} 
+		long size = Long.valueOf(reStrings.get(0));
+		
+
+		return size;
+	}
+	
+	
+	/**
+	 * 
+	 * <一句话功能简述>
+	 * <功能详细描述>
+	 * @see [类、类#方法、类#成员]
+	 */
+	@Test
+	public void testShowData(){
+		
+		System.out.println(showFolderData("/home"));
+
+	}
 }
\ No newline at end of file
diff --git a/src/com/platform/glusterfs/SizeInfo.java b/src/com/platform/glusterfs/SizeInfo.java
index 1aad2969..4d639be2 100644
--- a/src/com/platform/glusterfs/SizeInfo.java
+++ b/src/com/platform/glusterfs/SizeInfo.java
@@ -1,93 +1,93 @@
-package com.platform.glusterfs;
-
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-
-import com.platform.utils.Constant;
-
-public class SizeInfo {
-	public static Logger log = Logger.getLogger(ClusterInfo.class);
-	VolumeInfo volumeInfo = new VolumeInfo();
-
-	/**
-	 * 获取集群�?��volume size
-	 * 返回值:-1:错�? 0:没有volume long:size大小
-	 * @return
-	 */
-	public long showAllSize() {
-		log.info("get AllSize ");
-		List<String> volumeNames = volumeInfo.showAllVolumeName();
-		if (volumeNames == null) {
-			log.error("1201 showAllVolumeName error");
-			return -1;
-		}
-		if (volumeNames.size() == 0) {
-			log.error("1202 It is not exist any volume");
-			return 0;
-		}
-		List<String> reStrings = null;
-		long size = 0L;
-
-		for (String str : volumeNames) {
-			String command = "df |grep  " + str + "|awk  \'{print $2}\'";
-			reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, Constant.port,
-					command);
-			if (reStrings.isEmpty()) {
-				log.error("1203 The brick is unmount");
-			} else {
-				size += Long.parseLong(reStrings.get(0));
-			}
-
-		}
-
-		return size;
-	}
-	/**
-	 * 返回集群已用大小
-	 * @return
-	 * 返回值:-1:错�? 0:没有volume long:size大小
-	 */
-	public long showUseSize() {
-		log.info("get UseSize ");
-
-		List<String> volumeNames = volumeInfo.showAllVolumeName();
-		List<String> reStrings = null;
-		long size = 0L;
-		if (volumeNames == null) {
-			log.error("1201 showAllVolumeName error");
-			return -1;
-		}
-		if (volumeNames.size() == 0) {
-			log.error("1202 It is not exist any volume");
-			return 0;
-		}
-		
-			for (String str : volumeNames) {
-				String command = "df |grep  " + str + "|awk  \'{print $3}\'";
-				reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd,
-						Constant.port, command);
-				if (reStrings.isEmpty()) {
-					log.error("1202 The brick is unmount");
-				} else {
-					size += Integer.valueOf(reStrings.get(0));
-				}
-
-			}
-		
-		return size;
-	}
-
-	public static void main(String[] args) {
-		PropertyConfigurator.configure("log4j.properties");
-		System.out.println(new SizeInfo().showAllSize());
-		System.out.println(new SizeInfo().showUseSize());
-	}
+package com.platform.glusterfs;
+
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+
+import com.platform.utils.Constant;
+
+public class SizeInfo {
+	public static Logger log = Logger.getLogger(ClusterInfo.class);
+	VolumeInfo volumeInfo = new VolumeInfo();
+
+	/**
+	 * 获取集群�?��volume size
+	 * 返回值:-1:错�? 0:没有volume long:size大小
+	 * @return
+	 */
+	public long showAllSize() {
+		log.info("get AllSize ");
+		List<String> volumeNames = volumeInfo.showAllVolumeName();
+		if (volumeNames == null) {
+			log.error("1201 showAllVolumeName error");
+			return -1;
+		}
+		if (volumeNames.size() == 0) {
+			log.error("1202 It is not exist any volume");
+			return 0;
+		}
+		List<String> reStrings = null;
+		long size = 0L;
+
+		for (String str : volumeNames) {
+			String command = "df |grep  " + str + "|awk  \'{print $2}\'";
+			reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, Constant.port,
+					command);
+			if (reStrings.isEmpty()) {
+				log.error("1203 The brick is unmount");
+			} else {
+				size += Long.parseLong(reStrings.get(0));
+			}
+
+		}
+
+		return size;
+	}
+	/**
+	 * 返回集群已用大小
+	 * @return
+	 * 返回值:-1:错�? 0:没有volume long:size大小
+	 */
+	public long showUseSize() {
+		log.info("get UseSize ");
+
+		List<String> volumeNames = volumeInfo.showAllVolumeName();
+		List<String> reStrings = null;
+		long size = 0L;
+		if (volumeNames == null) {
+			log.error("1201 showAllVolumeName error");
+			return -1;
+		}
+		if (volumeNames.size() == 0) {
+			log.error("1202 It is not exist any volume");
+			return 0;
+		}
+		
+			for (String str : volumeNames) {
+				String command = "df |grep  " + str + "|awk  \'{print $3}\'";
+				reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd,
+						Constant.port, command);
+				if (reStrings.isEmpty()) {
+					log.error("1202 The brick is unmount");
+				} else {
+					size += Integer.valueOf(reStrings.get(0));
+				}
+
+			}
+		
+		return size;
+	}
+
+	public static void main(String[] args) {
+		PropertyConfigurator.configure("log4j.properties");
+		System.out.println(new SizeInfo().showAllSize());
+		System.out.println(new SizeInfo().showUseSize());
+	}
 }
\ No newline at end of file
diff --git a/src/com/platform/glusterfs/VolumeInfo.java b/src/com/platform/glusterfs/VolumeInfo.java
index 3c4bfb1d..e2ece069 100644
--- a/src/com/platform/glusterfs/VolumeInfo.java
+++ b/src/com/platform/glusterfs/VolumeInfo.java
@@ -1,406 +1,406 @@
-
-package com.platform.glusterfs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-import org.junit.Test;
-import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;
-
-import com.platform.utils.Constant;
-import com.platform.utils.GanymedSSH;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * 获取volume信息 <功能详细描述>
- * 
- * @author liliy
- * @version [版本号,2016年9月13日]
- * @see [相关类/方法]
- * @since [产品/模块版本]
- */
-public class VolumeInfo {
-	public static Logger log = Logger.getLogger(VolumeInfo.class);
-
-	/**
-	 * 显示所有volume名称 <功能详细描述>
-	 * 
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public List<String> showAllVolumeName() {
-		log.info("get volume name");
-		List<String> volNames = new ArrayList<String>();
-
-		/*
-		 * String command = "echo \"" + Constant.rootPasswd +
-		 * "\"  |sudo -S gluster volume info|grep ^Volume.Name"; RunCommand
-		 * runCommand = new RunCommand(); List<String> reStrings =
-		 * runCommand.runCommandWait(command);
-		 */
-		List<String> reStrings = Constant.ganymedSSH
-				.execCmdWaitAcquiescent(Constant.glusterVolumeInfo + "|grep ^Volume.Name");
-		// System.out.println(reStrings);
-		if (reStrings == null) {
-			log.error("1401 get result is null");
-			return null;
-		}
-		if (reStrings.size() == 0) {
-			log.error("1402 get result is nothing");
-			return null;
-		}
-		if (reStrings.get(0).contains(Constant.noVolume)) {
-			reStrings.clear();
-			return reStrings;
-		}
-		if (!(reStrings.get(0).split(":")[0].contains("Volume Name"))) {
-			log.error("1403 get result string wrong");
-			return null;
-		}
-
-		String nameInfo = "";
-		for (Iterator it = reStrings.iterator(); it.hasNext();) {
-			String line = (String) it.next();
-			String str[] = line.split(":");
-			volNames.add(str[1].replaceAll(" ", ""));
-		}
-		return volNames;
-
-	}
-
-	/**
-	 * 给定参数volume的名称获得volume的类型 
-	 * 
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public String getVolumeType(String volumeName) {
-		log.info("get volume type");
-		String volType = "";
-
-		List<String> reStrings = Constant.ganymedSSH
-				.execCmdWaitAcquiescent(Constant.glusterVolumeInfo + volumeName + "|grep ^Type");
-		// System.out.println(reStrings);
-		if (reStrings == null) {
-			log.error("1501 get result is null");
-			return null;
-		}
-		if (reStrings.size() == 0) {
-			log.error("1502 get result is nothing");
-			return null;
-		}
-		if (!(reStrings.get(0).split(":")[0].contains("Type"))) {
-			log.error("1503 get result string wrong");
-			return null;
-		}
-
-		// System.out.println(reStrings);
-
-		for (Iterator it = reStrings.iterator(); it.hasNext();) {
-			String line = (String) it.next();
-			String str[] = line.split(":");
-			volType = str[1];
-		}
-		volType = volType.replaceAll(" ", "");
-		return volType;
-	}
-
-	/**
-	 * 获取volumeName的状态 如果出错返回null,如果volumeName不存在则返回Volume volumeName does not
-	 * exist,正常返回状态Started,Stopped,Created
-	 * 
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public String getVolumeStatus(String volumeName) {
-		log.info("get volume status");
-		String volStatus = "";
-		String cmd = Constant.glusterVolumeInfo + " " + volumeName + " |grep ^Status";
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		// System.out.println(reStrings);
-		if (reStrings == null) {
-			log.error("1701 get result is null");
-			return null;
-		}
-		if (reStrings.size() == 0) {
-			log.error("1702 get result is nothing");
-			return null;
-		}
-
-		if (reStrings.get(0).contains("does not exist")) {
-			log.error("1703 " + reStrings.get(0));
-			return reStrings.get(0);
-		}
-		if (!(reStrings.get(0).split(":")[0].contains("Status"))) {
-			log.error("1704 get result string wrong");
-			return null;
-		}
-		for (Iterator it = reStrings.iterator(); it.hasNext();) {
-			String line = (String) it.next();
-			String str[] = line.split(":");
-			volStatus = str[1].replaceAll(" ", "");
-		}
-
-		return volStatus;
-	}
-
-	/**
-	 * 获取volumeName的可用大小
-	 * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的可用大小
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public Long getVolumeAvailableSize(String volumeName) throws Exception{
-		log.info("get volume availableSize");
-		Long allSize = 0L;
-
-		String cmd = Constant.df + " | grep " + volumeName + "|awk '{print $4}'";
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		// System.out.println(reStrings);
-		if (reStrings == null) {
-			log.error("1802 get result is error");
-			return -2L;
-		}
-		if (reStrings.size() == 0) {
-			log.error("1801 " + volumeName + " is not exists!");
-			return -1L;
-		}
-		allSize = Long.parseLong(reStrings.get(0));
-		return allSize;
-	}
-
-	/**
-	 * 获取volumeName已用空间
-	 * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的已用的大小
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public Long getVolumeUseSize(String volumeName) throws Exception{
-		log.info("get volume used size");
-		Long usedSize = 0L;
-		if (volumeIsExists(volumeName) == false) {
-			log.error("1901 " + volumeName + " is not exists!");
-			return -1L;
-
-		}
-
-		String cmd = "df | grep " + volumeName + "|awk '{print $3}'";
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		// System.out.println(reStrings);
-		if (reStrings == null) {
-			log.error("1901 get result is null");
-			return -2L;
-		}
-		if (reStrings.size() == 0) {
-			log.error("1902 " + volumeName + " is not exists!");
-			return -1L;
-		}
-		usedSize = Long.parseLong(reStrings.get(0));
-		return usedSize;
-	}
-
-	/**
-	 * 获取volumeName的bricks
-	 * 返回一个bircks的list ip:path,如果volumeName不存在返回null
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public List<String> getVolumeBricks(String volumeName) {
-		log.info("get volume bricks");
-
-		String cmd = "gluster volume info " + volumeName + " |grep ^Brick'[0-9]\\+' |awk '{print $2}'";
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		// System.out.println(reStrings);
-		if (reStrings == null) {
-			log.error("1601 get volume bricks wrong");
-			return null;
-		}
-		if (reStrings.size()==0) {
-			log.error("1602 "+volumeName+" is not exists!");
-			return null;
-		}
-		return reStrings;
-	}
-
-	/**
-	 * 获取volumeName所有挂载点
-	 * <功能详细描述>
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public List<String> getVolumeMountPoint(String volumeName) {
-		log.info("get volume MountPoint");
-		List<String> mountPoints = new ArrayList<>();
-		String cmd=Constant.df + "|grep " + volumeName + "|awk '{print $6}'";
-		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
-		// System.out.println(reStrings);
-		if (reStrings == null) {
-			log.error("11001 get result string wrong");
-			return null;
-		}
-		if (reStrings.size() == 0) {
-			log.error("11002 " + volumeName + " is not exists or no mountpoint");
-			return null;
-		}
-
-		for (String mountPoint : reStrings) {
-			mountPoint = mountPoint.replaceAll(" ", "");
-			mountPoints.add(mountPoint);
-		}
-		return mountPoints;
-	}
-
-	public String getOneVolumeMountPoint(String volumeName) {
-		log.info("get one volume MountPoint");
-		
-		String mountPoint=null;
-		
-		List<String> mountpoints = getVolumeMountPoint(volumeName);
-		// System.out.println(reStrings);
-		if (mountpoints == null || mountpoints.size() == 0) {
-			log.error("11001 get result string wrong");
-			return null;
-		}
-
-		mountPoint=mountpoints.get(0);
-		return mountPoint;
-	}
-
-	/**
-	 * 获取volumeName的所有brick中数据占用空间的大小
-	 * 返回一个map表示bricks和数据大小 <ip:path,data_size>
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public Map<String, Double> getVolumebricksDataSize(String volumeName) {
-		List<String> bricks = getVolumeBricks(volumeName);
-		Map<String, Double> brick_size = new HashMap<>();
-		if (bricks == null) {
-			return null;
-		}
-		for (String brick : bricks) {
-			String ipAndpath[] = brick.split(":");
-			String ip = ipAndpath[0];
-			String path = ipAndpath[1];
-			String cmd = "du -d 0 " + path + "|awk '{print $1}'";
-			List<String> reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd,
-					Constant.port, cmd);
-			// System.out.println(reStrings);
-			if (reStrings == null) {
-				log.error("1901 get result is null");
-				return null;
-			}
-			if (reStrings.size() == 0) {
-				log.error("1902 "+brick+" is not exits!");
-				return null;
-			}
-			Pattern pattern = Pattern.compile("[0-9]*");
-			Matcher isNum = pattern.matcher(reStrings.get(0));
-			if (!isNum.matches()) {
-				log.error("1903 " + reStrings.get(0) + " is unexpect");
-				return null;
-			}
-			brick_size.put(brick, Double.parseDouble(reStrings.get(0)));
-		}
-		return brick_size;
-	}
-
-	/**
-	  * 获取volumeName的所有brick中可用空间大小
-	 * 返回一个map表示bricks和可用空间大小 <ip:path,available_size>
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public Map<String, Double> getVolumebricksAvailableSize(String volumeName) {
-		List<String> bricks = getVolumeBricks(volumeName);
-		Map<String, Double> brick_size = new HashMap<>();
-		if (bricks == null) {
-			return null;
-		}
-		for (String brick : bricks) {
-			String ipAndpath[] = brick.split(":");
-			String ip = ipAndpath[0];
-			String path = ipAndpath[1];
-			String cmd = "df " + path + "|awk '{print $4}'";
-			List<String> reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd,
-					Constant.port, cmd);
-			// System.out.println(reStrings);
-			if (reStrings == null) {
-				log.error("1901 get result is null");
-				return null;
-			}
-			if (reStrings.size() == 0) {
-				log.error("1902 get result is nothing");
-				return null;
-			}
-			Pattern pattern = Pattern.compile("[0-9]*");
-			Matcher isNum = pattern.matcher(reStrings.get(1));
-			if (!isNum.matches()) {
-				log.error("1903 " + reStrings.get(1) + " is unexpect");
-				return null;
-			}
-			brick_size.put(brick, Double.parseDouble(reStrings.get(1)));
-		}
-		return brick_size;
-	}
-
-	/**
-	 * 判断volumeName是否存在,存在返回true,不存在返回false 
-	 * 
-	 * @param volumeName
-	 * @return
-	 * @see [类、类#方法、类#成员]
-	 */
-	public boolean volumeIsExists(String volumeName) {
-		List<String> volumes = showAllVolumeName();
-		if (volumes == null) {
-			return false;
-		}
-		if (volumes.contains(volumeName)) {
-			return true;
-		}
-		return false;
-	}
-
-	// @Test
-	public void test_getVolumebricksDataSize() {
-		System.out.println(getVolumebricksDataSize("gfs_ftp"));
-	}
-
-	// @Test
-	public void test_getVolumebricksAvailableSize() {
-		System.out.println(getVolumebricksAvailableSize("gfs_ftp"));
-	}
-
-	// @Test
-	public void test_getVolumeBricks() {
-		getVolumeBricks("gfs_ftp");
-	}
-
-	@Test
-	public void test_getVolumeStatus() {
-		System.out.println(getVolumeStatus("gs_fp"));
-	}
-
-	// @Test
-	public void test_getVolumeMountPoint() {
-		System.out.println(getVolumeMountPoint("gfs_ftp"));
-		System.out.println(getVolumeMountPoint("v1"));
-	}
-}
+
+package com.platform.glusterfs;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+import org.junit.Test;
+import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;
+
+import com.platform.utils.Constant;
+import com.platform.utils.GanymedSSH;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 获取volume信息 <功能详细描述>
+ * 
+ * @author liliy
+ * @version [版本号,2016年9月13日]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class VolumeInfo {
+	public static Logger log = Logger.getLogger(VolumeInfo.class);
+
+	/**
+	 * 显示所有volume名称 <功能详细描述>
+	 * 
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public List<String> showAllVolumeName() {
+		log.info("get volume name");
+		List<String> volNames = new ArrayList<String>();
+
+		/*
+		 * String command = "echo \"" + Constant.rootPasswd +
+		 * "\"  |sudo -S gluster volume info|grep ^Volume.Name"; RunCommand
+		 * runCommand = new RunCommand(); List<String> reStrings =
+		 * runCommand.runCommandWait(command);
+		 */
+		List<String> reStrings = Constant.ganymedSSH
+				.execCmdWaitAcquiescent(Constant.glusterVolumeInfo + "|grep ^Volume.Name");
+		// System.out.println(reStrings);
+		if (reStrings == null) {
+			log.error("1401 get result is null");
+			return null;
+		}
+		if (reStrings.size() == 0) {
+			log.error("1402 get result is nothing");
+			return null;
+		}
+		if (reStrings.get(0).contains(Constant.noVolume)) {
+			reStrings.clear();
+			return reStrings;
+		}
+		if (!(reStrings.get(0).split(":")[0].contains("Volume Name"))) {
+			log.error("1403 get result string wrong");
+			return null;
+		}
+
+		String nameInfo = "";
+		for (Iterator it = reStrings.iterator(); it.hasNext();) {
+			String line = (String) it.next();
+			String str[] = line.split(":");
+			volNames.add(str[1].replaceAll(" ", ""));
+		}
+		return volNames;
+
+	}
+
+	/**
+	 * 给定参数volume的名称获得volume的类型 
+	 * 
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public String getVolumeType(String volumeName) {
+		log.info("get volume type");
+		String volType = "";
+
+		List<String> reStrings = Constant.ganymedSSH
+				.execCmdWaitAcquiescent(Constant.glusterVolumeInfo + volumeName + "|grep ^Type");
+		// System.out.println(reStrings);
+		if (reStrings == null) {
+			log.error("1501 get result is null");
+			return null;
+		}
+		if (reStrings.size() == 0) {
+			log.error("1502 get result is nothing");
+			return null;
+		}
+		if (!(reStrings.get(0).split(":")[0].contains("Type"))) {
+			log.error("1503 get result string wrong");
+			return null;
+		}
+
+		// System.out.println(reStrings);
+
+		for (Iterator it = reStrings.iterator(); it.hasNext();) {
+			String line = (String) it.next();
+			String str[] = line.split(":");
+			volType = str[1];
+		}
+		volType = volType.replaceAll(" ", "");
+		return volType;
+	}
+
+	/**
+	 * 获取volumeName的状态 如果出错返回null,如果volumeName不存在则返回Volume volumeName does not
+	 * exist,正常返回状态Started,Stopped,Created
+	 * 
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public String getVolumeStatus(String volumeName) {
+		log.info("get volume status");
+		String volStatus = "";
+		String cmd = Constant.glusterVolumeInfo + " " + volumeName + " |grep ^Status";
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		// System.out.println(reStrings);
+		if (reStrings == null) {
+			log.error("1701 get result is null");
+			return null;
+		}
+		if (reStrings.size() == 0) {
+			log.error("1702 get result is nothing");
+			return null;
+		}
+
+		if (reStrings.get(0).contains("does not exist")) {
+			log.error("1703 " + reStrings.get(0));
+			return reStrings.get(0);
+		}
+		if (!(reStrings.get(0).split(":")[0].contains("Status"))) {
+			log.error("1704 get result string wrong");
+			return null;
+		}
+		for (Iterator it = reStrings.iterator(); it.hasNext();) {
+			String line = (String) it.next();
+			String str[] = line.split(":");
+			volStatus = str[1].replaceAll(" ", "");
+		}
+
+		return volStatus;
+	}
+
+	/**
+	 * 获取volumeName的可用大小
+	 * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的可用大小
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public Long getVolumeAvailableSize(String volumeName) throws Exception{
+		log.info("get volume availableSize");
+		Long allSize = 0L;
+
+		String cmd = Constant.df + " | grep " + volumeName + "|awk '{print $4}'";
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		// System.out.println(reStrings);
+		if (reStrings == null) {
+			log.error("1802 get result is error");
+			return -2L;
+		}
+		if (reStrings.size() == 0) {
+			log.error("1801 " + volumeName + " is not exists!");
+			return -1L;
+		}
+		allSize = Long.parseLong(reStrings.get(0));
+		return allSize;
+	}
+
+	/**
+	 * 获取volumeName已用空间
+	 * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的已用的大小
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public Long getVolumeUseSize(String volumeName) throws Exception{
+		log.info("get volume used size");
+		Long usedSize = 0L;
+		if (volumeIsExists(volumeName) == false) {
+			log.error("1901 " + volumeName + " is not exists!");
+			return -1L;
+
+		}
+
+		String cmd = "df | grep " + volumeName + "|awk '{print $3}'";
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		// System.out.println(reStrings);
+		if (reStrings == null) {
+			log.error("1901 get result is null");
+			return -2L;
+		}
+		if (reStrings.size() == 0) {
+			log.error("1902 " + volumeName + " is not exists!");
+			return -1L;
+		}
+		usedSize = Long.parseLong(reStrings.get(0));
+		return usedSize;
+	}
+
+	/**
+	 * 获取volumeName的bricks
+	 * 返回一个bircks的list ip:path,如果volumeName不存在返回null
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public List<String> getVolumeBricks(String volumeName) {
+		log.info("get volume bricks");
+
+		String cmd = "gluster volume info " + volumeName + " |grep ^Brick'[0-9]\\+' |awk '{print $2}'";
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		// System.out.println(reStrings);
+		if (reStrings == null) {
+			log.error("1601 get volume bricks wrong");
+			return null;
+		}
+		if (reStrings.size()==0) {
+			log.error("1602 "+volumeName+" is not exists!");
+			return null;
+		}
+		return reStrings;
+	}
+
+	/**
+	 * 获取volumeName所有挂载点
+	 * <功能详细描述>
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public List<String> getVolumeMountPoint(String volumeName) {
+		log.info("get volume MountPoint");
+		List<String> mountPoints = new ArrayList<>();
+		String cmd=Constant.df + "|grep " + volumeName + "|awk '{print $6}'";
+		List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
+		// System.out.println(reStrings);
+		if (reStrings == null) {
+			log.error("11001 get result string wrong");
+			return null;
+		}
+		if (reStrings.size() == 0) {
+			log.error("11002 " + volumeName + " is not exists or no mountpoint");
+			return null;
+		}
+
+		for (String mountPoint : reStrings) {
+			mountPoint = mountPoint.replaceAll(" ", "");
+			mountPoints.add(mountPoint);
+		}
+		return mountPoints;
+	}
+
+	public String getOneVolumeMountPoint(String volumeName) {
+		log.info("get one volume MountPoint");
+		
+		String mountPoint=null;
+		
+		List<String> mountpoints = getVolumeMountPoint(volumeName);
+		// System.out.println(reStrings);
+		if (mountpoints == null || mountpoints.size() == 0) {
+			log.error("11001 get result string wrong");
+			return null;
+		}
+
+		mountPoint=mountpoints.get(0);
+		return mountPoint;
+	}
+
+	/**
+	 * 获取volumeName的所有brick中数据占用空间的大小
+	 * 返回一个map表示bricks和数据大小 <ip:path,data_size>
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public Map<String, Double> getVolumebricksDataSize(String volumeName) {
+		List<String> bricks = getVolumeBricks(volumeName);
+		Map<String, Double> brick_size = new HashMap<>();
+		if (bricks == null) {
+			return null;
+		}
+		for (String brick : bricks) {
+			String ipAndpath[] = brick.split(":");
+			String ip = ipAndpath[0];
+			String path = ipAndpath[1];
+			String cmd = "du -d 0 " + path + "|awk '{print $1}'";
+			List<String> reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd,
+					Constant.port, cmd);
+			// System.out.println(reStrings);
+			if (reStrings == null) {
+				log.error("1901 get result is null");
+				return null;
+			}
+			if (reStrings.size() == 0) {
+				log.error("1902 "+brick+" is not exits!");
+				return null;
+			}
+			Pattern pattern = Pattern.compile("[0-9]*");
+			Matcher isNum = pattern.matcher(reStrings.get(0));
+			if (!isNum.matches()) {
+				log.error("1903 " + reStrings.get(0) + " is unexpect");
+				return null;
+			}
+			brick_size.put(brick, Double.parseDouble(reStrings.get(0)));
+		}
+		return brick_size;
+	}
+
+	/**
+	  * 获取volumeName的所有brick中可用空间大小
+	 * 返回一个map表示bricks和可用空间大小 <ip:path,available_size>
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public Map<String, Double> getVolumebricksAvailableSize(String volumeName) {
+		List<String> bricks = getVolumeBricks(volumeName);
+		Map<String, Double> brick_size = new HashMap<>();
+		if (bricks == null) {
+			return null;
+		}
+		for (String brick : bricks) {
+			String ipAndpath[] = brick.split(":");
+			String ip = ipAndpath[0];
+			String path = ipAndpath[1];
+			String cmd = "df " + path + "|awk '{print $4}'";
+			List<String> reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd,
+					Constant.port, cmd);
+			// System.out.println(reStrings);
+			if (reStrings == null) {
+				log.error("1901 get result is null");
+				return null;
+			}
+			if (reStrings.size() == 0) {
+				log.error("1902 get result is nothing");
+				return null;
+			}
+			Pattern pattern = Pattern.compile("[0-9]*");
+			Matcher isNum = pattern.matcher(reStrings.get(1));
+			if (!isNum.matches()) {
+				log.error("1903 " + reStrings.get(1) + " is unexpect");
+				return null;
+			}
+			brick_size.put(brick, Double.parseDouble(reStrings.get(1)));
+		}
+		return brick_size;
+	}
+
+	/**
+	 * 判断volumeName是否存在,存在返回true,不存在返回false 
+	 * 
+	 * @param volumeName
+	 * @return
+	 * @see [类、类#方法、类#成员]
+	 */
+	public boolean volumeIsExists(String volumeName) {
+		List<String> volumes = showAllVolumeName();
+		if (volumes == null) {
+			return false;
+		}
+		if (volumes.contains(volumeName)) {
+			return true;
+		}
+		return false;
+	}
+
+	// @Test
+	public void test_getVolumebricksDataSize() {
+		System.out.println(getVolumebricksDataSize("gfs_ftp"));
+	}
+
+	// @Test
+	public void test_getVolumebricksAvailableSize() {
+		System.out.println(getVolumebricksAvailableSize("gfs_ftp"));
+	}
+
+	// @Test
+	public void test_getVolumeBricks() {
+		getVolumeBricks("gfs_ftp");
+	}
+
+	@Test
+	public void test_getVolumeStatus() {
+		System.out.println(getVolumeStatus("gs_fp"));
+	}
+
+	// @Test
+	public void test_getVolumeMountPoint() {
+		System.out.println(getVolumeMountPoint("gfs_ftp"));
+		System.out.println(getVolumeMountPoint("v1"));
+	}
+}
diff --git a/src/com/platform/kubernetes/SimpleKubeClient.java b/src/com/platform/kubernetes/SimpleKubeClient.java
index 743623f2..ab1ab367 100644
--- a/src/com/platform/kubernetes/SimpleKubeClient.java
+++ b/src/com/platform/kubernetes/SimpleKubeClient.java
@@ -1,154 +1,154 @@
-package com.platform.kubernetes;
-
-import io.fabric8.kubernetes.api.model.Container;
-import io.fabric8.kubernetes.api.model.ContainerPort;
-import io.fabric8.kubernetes.api.model.Pod;
-import io.fabric8.kubernetes.api.model.ReplicationController;
-import io.fabric8.kubernetes.client.Config;
-import io.fabric8.kubernetes.client.ConfigBuilder;
-import io.fabric8.kubernetes.client.DefaultKubernetesClient;
-import io.fabric8.kubernetes.client.KubernetesClient;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.platform.utils.Configs;
-import com.platform.utils.UtilsHelper;
-
-public class SimpleKubeClient {
-	private KubernetesClient client;
-	private final static String DEFAULT_NAMESPACE = "default";	
-
-	public SimpleKubeClient() {
-		this.client = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
-	}
-
-	public SimpleKubeClient(String masterUrl) {
-		this.client = new DefaultKubernetesClient(masterUrl);
-	}
-
-	public SimpleKubeClient(Config config) {
-		Config cf = config;
-		if (null == config) {
-			cf = new ConfigBuilder().withMasterUrl(Configs.KUBE_MASTER_URL).build();
-		}
-		this.client = new DefaultKubernetesClient(cf);
-	}
-
-	public void updateOrAddReplicasLabelById(String namespace,
-			String resourceId, String key, String value) {
-		KubernetesClient kubeClient = client;
-		if (checkClientNull())
-			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
-		kubeClient.replicationControllers().inNamespace(namespace)
-				.withName(resourceId).edit().editMetadata()
-				.addToLabels(key, value).endMetadata().done();
-	}
-
-	public void updateOrAddReplicasLabelByEntity(String namespace,
-			ReplicationController replicas, String key, String value) {
-		updateOrAddReplicasLabelById(namespace, replicas.getMetadata()
-				.getName(), key, value);
-	}
-
-	public void updateOrAddReplicasLabelById(String resourceId, String key,
-			String value) {
-		updateOrAddReplicasLabelById(DEFAULT_NAMESPACE, resourceId, key, value);
-	}
-
-	public void updateOrAddReplicasLabelByEntity(
-			ReplicationController replicas, String key, String value) {
-		updateOrAddReplicasLabelByEntity(DEFAULT_NAMESPACE, replicas, key,
-				value);
-	}
-
-	@SuppressWarnings("resource")
-	public ReplicationController getReplicationController(String namespace,
-			String replicasName) {
-		KubernetesClient kubeClient = client;
-		if (checkClientNull())
-			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
-		return kubeClient.replicationControllers().inNamespace(namespace)
-				.withName(replicasName).get();
-	}
-
-	public ReplicationController getReplicationController(String replicasName) {
-		return getReplicationController(DEFAULT_NAMESPACE, replicasName);
-	}
-
-	@SuppressWarnings("resource")
-	public List<Pod> getPodsForApplicaList(ReplicationController rc) {
-		Map<String, String> selector = rc.getSpec().getSelector();
-		KubernetesClient kubeClient = client;
-		if (checkClientNull())
-			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
-		List<Pod> podList = kubeClient.pods()
-				.inNamespace(rc.getMetadata().getNamespace()).list().getItems();
-		return getPods(podList, selector);
-	}
-
-	private boolean checkClientNull() {
-		return null == client;
-	}
-
-	public List<Pod> getPods(List<Pod> pods, Map<String, String> selector) {
-		List<Pod> result = new ArrayList<Pod>();
-		for (int i = 0; i < pods.size(); i++)
-			if (UtilsHelper.isSubMap(getLabels(pods.get(i)), selector))
-				result.add(pods.get(i));
-		return result;
-	}
-
-	private Map<String, String> getLabels(Pod pod) {
-		return pod.getMetadata().getLabels();
-	}
-
-	public KubernetesClient getClient() {
-		// TODO Auto-generated method stub
-		return client;
-	}
-
-	public int getPodContainerport(Pod pod) {
-		int port = Configs.ORACLE_DEFAULT_PORT;
-		List<Container> containers = pod.getSpec().getContainers();
-		if (null != containers && containers.size() > 0) {
-			List<ContainerPort> ports = containers.get(0).getPorts();
-			if (null != ports && ports.size() > 0)
-				port = ports.get(0).getHostPort();
-		}
-		return port;
-	}
-
-	public String getPodHostIp(Pod pod) {
-		return pod.getSpec().getNodeName();
-	}
-
-	@SuppressWarnings("resource")
-	public Map<String, ReplicationController> getReplicationControllerList(
-			String namespace) {
-		KubernetesClient kubeClient = client;
-		Map<String, ReplicationController> rcMap = new HashMap<String, ReplicationController>();
-		if (checkClientNull())
-			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
-		List<ReplicationController> replicasList = kubeClient
-				.replicationControllers().list().getItems();
-		if (replicasList != null)
-			for (int i = 0; i < replicasList.size(); i++) {
-				ReplicationController rController = replicasList.get(i);
-				rcMap.put(rController.getMetadata().getName(), rController);
-			}
-		return rcMap;
-	}
-
-	public Map<String, ReplicationController> getReplicationControllerList() {
-		return getReplicationControllerList(DEFAULT_NAMESPACE);
-	}
-
-	public void close() {
-		if (!checkClientNull())
-			client.close();
-	}
-
-}
+package com.platform.kubernetes;
+
+import io.fabric8.kubernetes.api.model.Container;
+import io.fabric8.kubernetes.api.model.ContainerPort;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.ReplicationController;
+import io.fabric8.kubernetes.client.Config;
+import io.fabric8.kubernetes.client.ConfigBuilder;
+import io.fabric8.kubernetes.client.DefaultKubernetesClient;
+import io.fabric8.kubernetes.client.KubernetesClient;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.platform.utils.Configs;
+import com.platform.utils.UtilsHelper;
+
+public class SimpleKubeClient {
+	private KubernetesClient client;
+	private final static String DEFAULT_NAMESPACE = "default";	
+
+	public SimpleKubeClient() {
+		this.client = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
+	}
+
+	public SimpleKubeClient(String masterUrl) {
+		this.client = new DefaultKubernetesClient(masterUrl);
+	}
+
+	public SimpleKubeClient(Config config) {
+		Config cf = config;
+		if (null == config) {
+			cf = new ConfigBuilder().withMasterUrl(Configs.KUBE_MASTER_URL).build();
+		}
+		this.client = new DefaultKubernetesClient(cf);
+	}
+
+	public void updateOrAddReplicasLabelById(String namespace,
+			String resourceId, String key, String value) {
+		KubernetesClient kubeClient = client;
+		if (checkClientNull())
+			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
+		kubeClient.replicationControllers().inNamespace(namespace)
+				.withName(resourceId).edit().editMetadata()
+				.addToLabels(key, value).endMetadata().done();
+	}
+
+	public void updateOrAddReplicasLabelByEntity(String namespace,
+			ReplicationController replicas, String key, String value) {
+		updateOrAddReplicasLabelById(namespace, replicas.getMetadata()
+				.getName(), key, value);
+	}
+
+	public void updateOrAddReplicasLabelById(String resourceId, String key,
+			String value) {
+		updateOrAddReplicasLabelById(DEFAULT_NAMESPACE, resourceId, key, value);
+	}
+
+	public void updateOrAddReplicasLabelByEntity(
+			ReplicationController replicas, String key, String value) {
+		updateOrAddReplicasLabelByEntity(DEFAULT_NAMESPACE, replicas, key,
+				value);
+	}
+
+	@SuppressWarnings("resource")
+	public ReplicationController getReplicationController(String namespace,
+			String replicasName) {
+		KubernetesClient kubeClient = client;
+		if (checkClientNull())
+			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
+		return kubeClient.replicationControllers().inNamespace(namespace)
+				.withName(replicasName).get();
+	}
+
+	public ReplicationController getReplicationController(String replicasName) {
+		return getReplicationController(DEFAULT_NAMESPACE, replicasName);
+	}
+
+	@SuppressWarnings("resource")
+	public List<Pod> getPodsForApplicaList(ReplicationController rc) {
+		Map<String, String> selector = rc.getSpec().getSelector();
+		KubernetesClient kubeClient = client;
+		if (checkClientNull())
+			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
+		List<Pod> podList = kubeClient.pods()
+				.inNamespace(rc.getMetadata().getNamespace()).list().getItems();
+		return getPods(podList, selector);
+	}
+
+	private boolean checkClientNull() {
+		return null == client;
+	}
+
+	public List<Pod> getPods(List<Pod> pods, Map<String, String> selector) {
+		List<Pod> result = new ArrayList<Pod>();
+		for (int i = 0; i < pods.size(); i++)
+			if (UtilsHelper.isSubMap(getLabels(pods.get(i)), selector))
+				result.add(pods.get(i));
+		return result;
+	}
+
+	private Map<String, String> getLabels(Pod pod) {
+		return pod.getMetadata().getLabels();
+	}
+
+	public KubernetesClient getClient() {
+		// TODO Auto-generated method stub
+		return client;
+	}
+
+	public int getPodContainerport(Pod pod) {
+		int port = Configs.ORACLE_DEFAULT_PORT;
+		List<Container> containers = pod.getSpec().getContainers();
+		if (null != containers && containers.size() > 0) {
+			List<ContainerPort> ports = containers.get(0).getPorts();
+			if (null != ports && ports.size() > 0)
+				port = ports.get(0).getHostPort();
+		}
+		return port;
+	}
+
+	public String getPodHostIp(Pod pod) {
+		return pod.getSpec().getNodeName();
+	}
+
+	@SuppressWarnings("resource")
+	public Map<String, ReplicationController> getReplicationControllerList(
+			String namespace) {
+		KubernetesClient kubeClient = client;
+		Map<String, ReplicationController> rcMap = new HashMap<String, ReplicationController>();
+		if (checkClientNull())
+			kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
+		List<ReplicationController> replicasList = kubeClient
+				.replicationControllers().list().getItems();
+		if (replicasList != null)
+			for (int i = 0; i < replicasList.size(); i++) {
+				ReplicationController rController = replicasList.get(i);
+				rcMap.put(rController.getMetadata().getName(), rController);
+			}
+		return rcMap;
+	}
+
+	public Map<String, ReplicationController> getReplicationControllerList() {
+		return getReplicationControllerList(DEFAULT_NAMESPACE);
+	}
+
+	public void close() {
+		if (!checkClientNull())
+			client.close();
+	}
+
+}
diff --git a/src/com/platform/oracle/OracleConnector.java b/src/com/platform/oracle/OracleConnector.java
index 08c6c49a..c7749648 100644
--- a/src/com/platform/oracle/OracleConnector.java
+++ b/src/com/platform/oracle/OracleConnector.java
@@ -1,76 +1,76 @@
-package com.platform.oracle;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import com.platform.utils.Configs;
-
-public class OracleConnector {	
-	static {
-		try {
-			Class.forName("oracle.jdbc.driver.OracleDriver");
-			Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功");
-		} catch (ClassNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}	
-	
-
-	public static Connection ConnectionBuilder(String url, String user,
-			String password) {	
-		Connection conn=null;
-		try {
-			conn = DriverManager.getConnection(url, user, password);
-		} catch (SQLException e) {		
-			Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() + "]");
-		}
-		return conn;
-	}
-
-	public static boolean canConnect(String url, String user, String password) {
-		return (null != ConnectionBuilder(url, user, password));
-	}
-
-	public ResultSet getSQLExecResultSet(Connection conn, String sql) {
-		ResultSet resultSet = null;
-		try {
-			Statement statement = conn
-					.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
-							ResultSet.CONCUR_UPDATABLE);
-			resultSet = statement.executeQuery(sql);
-		} catch (SQLException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		return resultSet;
-	}
-
-	public ResultSet getSQLExecResultSet(String url, String user,
-			String password, String sql) {
-		return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql);
-	}
-
-	/**
-	 * 执行对oracle数据库的增、删
-	 * @param conn
-	 * @param sql
-	 * @return 是否执行成功
-	 */
-	public boolean execOracleSQL(Connection conn, String sql) {
-		boolean flag = false;
-		try {
-			Statement statement = conn.createStatement();
-			if (statement.executeUpdate(sql) > 0)
-				flag = true;
-		} catch (SQLException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return flag;
-	}	
+package com.platform.oracle;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import com.platform.utils.Configs;
+
+public class OracleConnector {	
+	static {
+		try {
+			Class.forName("oracle.jdbc.driver.OracleDriver");
+			Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功");
+		} catch (ClassNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}	
+	
+
+	public static Connection ConnectionBuilder(String url, String user,
+			String password) {	
+		Connection conn=null;
+		try {
+			conn = DriverManager.getConnection(url, user, password);
+		} catch (SQLException e) {		
+			Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() + "]");
+		}
+		return conn;
+	}
+
+	public static boolean canConnect(String url, String user, String password) {
+		return (null != ConnectionBuilder(url, user, password));
+	}
+
+	public ResultSet getSQLExecResultSet(Connection conn, String sql) {
+		ResultSet resultSet = null;
+		try {
+			Statement statement = conn
+					.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
+							ResultSet.CONCUR_UPDATABLE);
+			resultSet = statement.executeQuery(sql);
+		} catch (SQLException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		return resultSet;
+	}
+
+	public ResultSet getSQLExecResultSet(String url, String user,
+			String password, String sql) {
+		return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql);
+	}
+
+	/**
+	 * 执行对oracle数据库的增、删
+	 * @param conn
+	 * @param sql
+	 * @return 是否执行成功
+	 */
+	public boolean execOracleSQL(Connection conn, String sql) {
+		boolean flag = false;
+		try {
+			Statement statement = conn.createStatement();
+			if (statement.executeUpdate(sql) > 0)
+				flag = true;
+		} catch (SQLException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return flag;
+	}	
 }
\ No newline at end of file
diff --git a/src/com/platform/service/DataInfoService.java b/src/com/platform/service/DataInfoService.java
index c08d0850..c2e93ad2 100644
--- a/src/com/platform/service/DataInfoService.java
+++ b/src/com/platform/service/DataInfoService.java
@@ -1,16 +1,16 @@
-
-package com.platform.service;
-
-import org.springframework.ui.ModelMap;
-
-import com.platform.dao.DataInfoDao;
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.PagerOptions;
-
-public interface DataInfoService {
-	public ModelMap getPagerTableData(PagerOptions pagerOptions);
-
-	void deleteData(String[] id) throws Exception;
-	
-	int save(DataInfoEntity data) throws Exception;
-}
+
+package com.platform.service;
+
+import org.springframework.ui.ModelMap;
+
+import com.platform.dao.DataInfoDao;
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.PagerOptions;
+
+public interface DataInfoService {
+	public ModelMap getPagerTableData(PagerOptions pagerOptions);
+
+	void deleteData(String[] id) throws Exception;
+	
+	int save(DataInfoEntity data) throws Exception;
+}
diff --git a/src/com/platform/service/DataInfoServiceImp.java b/src/com/platform/service/DataInfoServiceImp.java
index 7b95f563..95f79c0f 100644
--- a/src/com/platform/service/DataInfoServiceImp.java
+++ b/src/com/platform/service/DataInfoServiceImp.java
@@ -1,89 +1,89 @@
-package com.platform.service;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-
-import com.base.CustomException;
-import com.platform.dao.DataInfoDao;
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.PagerOptions;
-import com.platform.utils.Bean2MapUtils;
-
-@Service(value = "dataInfoService")
-public class DataInfoServiceImp implements DataInfoService {
-	@Resource(name = "dataInfoDao")
-	private DataInfoDao dfdDao;
-
-	public void setDfdDao(DataInfoDao dfdDao) {
-		this.dfdDao = dfdDao;
-	}
-
-	@Override
-	public ModelMap getPagerTableData(PagerOptions pagerOptions) {
-		ModelMap modelMap = new ModelMap();
-		String querystr = pagerOptions.getKeyQuery();
-		String[] querys = null;
-		try {
-			if (null != querystr && !"".equals(querystr)) {
-				querys = querystr.split(" ");
-			}
-			pagerOptions.setArray(querys);
-			int count = dfdDao.getLimitedDataCount(pagerOptions); //获取总记录条数	
-			System.out.println("total colume " + count);
-			int offset = 0;		
-			if (pagerOptions.getCurrentPageNum() > 1) {
-				pagerOptions.setTotalLimit((pagerOptions.getCurrentPageNum() - 1)
-						* pagerOptions.getPriorTableSize());
-				offset = dfdDao.getLimitedBeginId(pagerOptions); //获取起始查询id
-				System.out.println(offset);
-			}
-			pagerOptions.setOffset(offset + 1);
-			List<DataInfoEntity> result = dfdDao
-					.getLimitedDataInfoEntities(pagerOptions);
-			modelMap.addAttribute("data", result);
-			modelMap.addAttribute("length", count);
-		} catch (Exception e) {
-			new CustomException();
-		}
-		return modelMap;
-	}
-	
-	@Override
-	public void deleteData(String[] id) throws Exception {
-		// TODO Auto-generated method stub
-		List<Integer> ids = new ArrayList<Integer>();
-		for(String idx: id){
-			ids.add(Integer.parseInt(idx));
-		}
-		if (ids.size() > 0) {
-			//数据在不在?
-			List<String> paths = dfdDao.getIdIsExist(ids);
-			if(paths.size()>0){
-				//删除文件操作
-				for (int i = 0; i < paths.size(); i++) {
-					System.out.println(paths.get(i));
-				}
-				//删除数据库记录
-				dfdDao.removes(ids);			
-			}
-		}
-	}
-
-	@Override
-	public int save(DataInfoEntity data) throws Exception {
-		int result = 0;
-		try {
-			result = dfdDao.save(data);
-		} catch (Exception e) {
-			// TODO: handle exception
-			System.out.println("");
-		}
-		return result;
-	}
-}
+package com.platform.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+
+import com.base.CustomException;
+import com.platform.dao.DataInfoDao;
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.PagerOptions;
+import com.platform.utils.Bean2MapUtils;
+
+@Service(value = "dataInfoService")
+public class DataInfoServiceImp implements DataInfoService {
+	@Resource(name = "dataInfoDao")
+	private DataInfoDao dfdDao;
+
+	public void setDfdDao(DataInfoDao dfdDao) {
+		this.dfdDao = dfdDao;
+	}
+
+	@Override
+	public ModelMap getPagerTableData(PagerOptions pagerOptions) {
+		ModelMap modelMap = new ModelMap();
+		String querystr = pagerOptions.getKeyQuery();
+		String[] querys = null;
+		try {
+			if (null != querystr && !"".equals(querystr)) {
+				querys = querystr.split(" ");
+			}
+			pagerOptions.setArray(querys);
+			int count = dfdDao.getLimitedDataCount(pagerOptions); //获取总记录条数	
+			System.out.println("total colume " + count);
+			int offset = 0;		
+			if (pagerOptions.getCurrentPageNum() > 1) {
+				pagerOptions.setTotalLimit((pagerOptions.getCurrentPageNum() - 1)
+						* pagerOptions.getPriorTableSize());
+				offset = dfdDao.getLimitedBeginId(pagerOptions); //获取起始查询id
+				System.out.println(offset);
+			}
+			pagerOptions.setOffset(offset + 1);
+			List<DataInfoEntity> result = dfdDao
+					.getLimitedDataInfoEntities(pagerOptions);
+			modelMap.addAttribute("data", result);
+			modelMap.addAttribute("length", count);
+		} catch (Exception e) {
+			new CustomException();
+		}
+		return modelMap;
+	}
+	
+	@Override
+	public void deleteData(String[] id) throws Exception {
+		// TODO Auto-generated method stub
+		List<Integer> ids = new ArrayList<Integer>();
+		for(String idx: id){
+			ids.add(Integer.parseInt(idx));
+		}
+		if (ids.size() > 0) {
+			//数据在不在?
+			List<String> paths = dfdDao.getIdIsExist(ids);
+			if(paths.size()>0){
+				//删除文件操作
+				for (int i = 0; i < paths.size(); i++) {
+					System.out.println(paths.get(i));
+				}
+				//删除数据库记录
+				dfdDao.removes(ids);			
+			}
+		}
+	}
+
+	@Override
+	public int save(DataInfoEntity data) throws Exception {
+		int result = 0;
+		try {
+			result = dfdDao.save(data);
+		} catch (Exception e) {
+			// TODO: handle exception
+			System.out.println("");
+		}
+		return result;
+	}
+}
diff --git a/src/com/platform/service/EncodeInfoService.java b/src/com/platform/service/EncodeInfoService.java
index 36a200bc..1da621a2 100644
--- a/src/com/platform/service/EncodeInfoService.java
+++ b/src/com/platform/service/EncodeInfoService.java
@@ -1,20 +1,20 @@
-package com.platform.service;
-
-import java.util.List;
-
-import com.platform.entities.EncodedInfoEntity;
-
-/**
- * 数据库业务逻辑处理接口
- * 
- * @author wuming
- * 
- */
-public interface EncodeInfoService {
-
-	public List<EncodedInfoEntity> getAllEncodeInfo(String tableName);
-
-	public int deleteEncodeByCode(String code, String tableName);
-
-	public String getEncodeNameByCode(String code, String name);
-}
+package com.platform.service;
+
+import java.util.List;
+
+import com.platform.entities.EncodedInfoEntity;
+
+/**
+ * 数据库业务逻辑处理接口
+ * 
+ * @author wuming
+ * 
+ */
+public interface EncodeInfoService {
+
+	public List<EncodedInfoEntity> getAllEncodeInfo(String tableName);
+
+	public int deleteEncodeByCode(String code, String tableName);
+
+	public String getEncodeNameByCode(String code, String name);
+}
diff --git a/src/com/platform/service/EncodeInfoServiceImpl.java b/src/com/platform/service/EncodeInfoServiceImpl.java
index 8492485d..4a403ec3 100644
--- a/src/com/platform/service/EncodeInfoServiceImpl.java
+++ b/src/com/platform/service/EncodeInfoServiceImpl.java
@@ -1,52 +1,52 @@
-package com.platform.service;
-
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-
-import com.platform.dao.EncodeInfoDao;
-import com.platform.entities.EncodedInfoEntity;
-
-/**
- * 业务逻辑的具体实现类
- * 
- * @author wuming
- * 
- */
-@Service("encodeInfoService")
-public class EncodeInfoServiceImpl implements EncodeInfoService {
-
-	@Resource(name = "encodeInfoDao")
-	private EncodeInfoDao eiDao;
-
-	public void setEiDao(EncodeInfoDao eiDao) {
-		this.eiDao = eiDao;
-	}
-
-	/**
-	 * 根据传递的tableName参数获取对应实体信息(行政区划/系统)
-	 */
-	@Override
-	public List<EncodedInfoEntity> getAllEncodeInfo(String tableName) {
-		return eiDao.getAllEntityInfo(tableName);
-
-	}
-
-	/**
-	 * 测试事物
-	 */
-	@Override
-	public int deleteEncodeByCode(String code, String tableName) {
-		// TODO Auto-generated method stub
-		int cursor = eiDao.deleteEncodeByCode(code, tableName);
-		//cursor = cursor / 0;
-		return cursor;
-	}
-
-	@Override
-	public String getEncodeNameByCode(String code, String tableName) {
-		return eiDao.getEncodeNameByCode(code, tableName);
-	}
-}
+package com.platform.service;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.platform.dao.EncodeInfoDao;
+import com.platform.entities.EncodedInfoEntity;
+
+/**
+ * 业务逻辑的具体实现类
+ * 
+ * @author wuming
+ * 
+ */
+@Service("encodeInfoService")
+public class EncodeInfoServiceImpl implements EncodeInfoService {
+
+	@Resource(name = "encodeInfoDao")
+	private EncodeInfoDao eiDao;
+
+	public void setEiDao(EncodeInfoDao eiDao) {
+		this.eiDao = eiDao;
+	}
+
+	/**
+	 * 根据传递的tableName参数获取对应实体信息(行政区划/系统)
+	 */
+	@Override
+	public List<EncodedInfoEntity> getAllEncodeInfo(String tableName) {
+		return eiDao.getAllEntityInfo(tableName);
+
+	}
+
+	/**
+	 * 测试事物
+	 */
+	@Override
+	public int deleteEncodeByCode(String code, String tableName) {
+		// TODO Auto-generated method stub
+		int cursor = eiDao.deleteEncodeByCode(code, tableName);
+		//cursor = cursor / 0;
+		return cursor;
+	}
+
+	@Override
+	public String getEncodeNameByCode(String code, String tableName) {
+		return eiDao.getEncodeNameByCode(code, tableName);
+	}
+}
diff --git a/src/com/platform/service/ICodeService.java b/src/com/platform/service/ICodeService.java
index a3424052..32f13477 100644
--- a/src/com/platform/service/ICodeService.java
+++ b/src/com/platform/service/ICodeService.java
@@ -1,40 +1,40 @@
-
-/**
- * 文件名   :   IGfsService.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  chen
- * 版本       :   <版本>
- * 修改时间:      2016年9月8日
- * 修改内容:      <修改内容>
- */
-package com.platform.service;
-
-
-import java.util.List;
-import java.util.Map;
-
-import com.platform.entities.FolderNode;
-import com.platform.entities.RegionalismEntity;
-import com.platform.entities.SystemEntity;
-import com.platform.entities.VolumeEntity;
-
-
-/**
- * <一句话功能简述>
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-
-public interface ICodeService {
-
-	public List<SystemEntity> findSystem(SystemEntity sys) throws Exception;
-	
-	public List<RegionalismEntity> findRegionalism(RegionalismEntity region) throws Exception;
-	
-	public Map<String, Object> findAll() throws Exception;
-	
-}
+
+/**
+ * 文件名   :   IGfsService.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  chen
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月8日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.service;
+
+
+import java.util.List;
+import java.util.Map;
+
+import com.platform.entities.FolderNode;
+import com.platform.entities.RegionalismEntity;
+import com.platform.entities.SystemEntity;
+import com.platform.entities.VolumeEntity;
+
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+
+public interface ICodeService {
+
+	public List<SystemEntity> findSystem(SystemEntity sys) throws Exception;
+	
+	public List<RegionalismEntity> findRegionalism(RegionalismEntity region) throws Exception;
+	
+	public Map<String, Object> findAll() throws Exception;
+	
+}
diff --git a/src/com/platform/service/IGfsService.java b/src/com/platform/service/IGfsService.java
index e8a693fb..84a4e21a 100644
--- a/src/com/platform/service/IGfsService.java
+++ b/src/com/platform/service/IGfsService.java
@@ -1,76 +1,76 @@
-
-/**
- * 文件名   :   IGfsService.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  chen
- * 版本       :   <版本>
- * 修改时间:      2016年9月8日
- * 修改内容:      <修改内容>
- */
-package com.platform.service;
-
-
-import java.util.List;
-
-import com.platform.entities.FolderNode;
-import com.platform.entities.VolumeEntity;
-
-
-/**
- * <一句话功能简述>
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-
-public interface IGfsService {
-
-	/**
-	 * <一句话功能简述> 查找path,的所有子目录
-	 * <功能详细描述>
-	 * @param path
-	 * @return
-	 * @throws Exception
-	 * @see [类、类#方法、类#成员]
-	 */
-	public FolderNode getFolder(String path) throws Exception;
-	
-	/**
-	 * <一句话功能简述> 复制path,的所有子目录
-	 * <功能详细描述>
-	 * @param srcPath
-	 * @param dstPath
-	 * @return
-	 * @throws Exception
-	 * @see [类、类#方法、类#成员]
-	 */
-
-	public int copyFolder(List<String> srcFolders, String dstFolder, String name) throws Exception;
-	
-	/**
-	 * <一句话功能简述> 获得volume下的 name \ allsize \ usedsize \ folderTree \ brick
-	 * <功能详细描述>
-	 * @return
-	 * @throws Exception
-	 * @see [类、类#方法、类#成员]
-	 */
-	public List<VolumeEntity> getAllVolumes() throws Exception;
-	
-	/**
-	 * <一句话功能简述>
-	 * <功能详细描述>
-	 * @return
-	 * @throws Exception
-	 * @see [类、类#方法、类#成员]
-	 */
-	public VolumeEntity getOneVolume(String volumeName) throws Exception;
-	
-	public int moveData(String volumeName, String srcPath, String dstPath) throws Exception;
-	
-	public int deleteData(String volumeName, String srcPath) throws Exception;
-
-	
-}
+
+/**
+ * 文件名   :   IGfsService.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  chen
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月8日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.service;
+
+
+import java.util.List;
+
+import com.platform.entities.FolderNode;
+import com.platform.entities.VolumeEntity;
+
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+
+public interface IGfsService {
+
+	/**
+	 * <一句话功能简述> 查找path,的所有子目录
+	 * <功能详细描述>
+	 * @param path
+	 * @return
+	 * @throws Exception
+	 * @see [类、类#方法、类#成员]
+	 */
+	public FolderNode getFolder(String path) throws Exception;
+	
+	/**
+	 * <一句话功能简述> 复制path,的所有子目录
+	 * <功能详细描述>
+	 * @param srcPath
+	 * @param dstPath
+	 * @return
+	 * @throws Exception
+	 * @see [类、类#方法、类#成员]
+	 */
+
+	public int copyFolder(List<String> srcFolders, String dstFolder, String name) throws Exception;
+	
+	/**
+	 * <一句话功能简述> 获得volume下的 name \ allsize \ usedsize \ folderTree \ brick
+	 * <功能详细描述>
+	 * @return
+	 * @throws Exception
+	 * @see [类、类#方法、类#成员]
+	 */
+	public List<VolumeEntity> getAllVolumes() throws Exception;
+	
+	/**
+	 * <一句话功能简述>
+	 * <功能详细描述>
+	 * @return
+	 * @throws Exception
+	 * @see [类、类#方法、类#成员]
+	 */
+	public VolumeEntity getOneVolume(String volumeName) throws Exception;
+	
+	public int moveData(String volumeName, String srcPath, String dstPath) throws Exception;
+	
+	public int deleteData(String volumeName, String srcPath) throws Exception;
+
+	
+}
diff --git a/src/com/platform/service/IMoveDataService.java b/src/com/platform/service/IMoveDataService.java
index bddb1e04..b69bf9e9 100644
--- a/src/com/platform/service/IMoveDataService.java
+++ b/src/com/platform/service/IMoveDataService.java
@@ -1,40 +1,41 @@
-package com.platform.service;
-
-import java.util.List;
-
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.DataInfoEntityMoveTmp;
-
-/** 数据迁移
- * @author chen
- *
- */
-public interface IMoveDataService {
-	
-	/** 迁移(新增)
-	 * @param a dataInfo实体
-	 * @param dstPath volume下的某个folder路径(需要补齐路径,eg: XXX/320198_16/1,or XXX/320122KFQ_15/1)
-	 * @return
-	 * @throws Exception
-	 */
-	public boolean moveData(List<DataInfoEntity> data, String dstPath) throws Exception;
-	
-	/** 查询所有进度
-	 * @return 返回所有的实体
-	 * @throws Exception
-	 */
-	public List<DataInfoEntityMoveTmp> findAll() throws Exception;
-	
-	/** 删除
-	 * @return
-	 * @throws Exception
-	 */
-	public int delete(DataInfoEntityMoveTmp dataMove) throws Exception;
-	
-	public int update(DataInfoEntityMoveTmp data) throws Exception;
-	
-	public int save(DataInfoEntityMoveTmp data) throws Exception;
-	
-	public int insertBatch(List<DataInfoEntityMoveTmp> list) throws Exception;
-
-}
+package com.platform.service;
+
+import java.util.List;
+
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.DataInfoEntityMoveTmp;
+import com.platform.entities.FolderNode;
+
+/** 数据迁移
+ * @author chen
+ *
+ */
+public interface IMoveDataService {
+	
+	/** 迁移(新增)
+	 * @param a dataInfo实体
+	 * @param dstPath volume下的某个folder路径(需要补齐路径,eg: XXX/320198_16/1,or XXX/320122KFQ_15/1)
+	 * @return
+	 * @throws Exception
+	 */
+	public boolean moveData(List<DataInfoEntity> data, FolderNode folder) throws Exception;
+	
+	/** 查询所有进度
+	 * @return 返回所有的实体
+	 * @throws Exception
+	 */
+	public List<DataInfoEntityMoveTmp> findAll() throws Exception;
+	
+	/** 删除
+	 * @return
+	 * @throws Exception
+	 */
+	public int delete(DataInfoEntityMoveTmp dataMove) throws Exception;
+	
+	public int update(DataInfoEntityMoveTmp data) throws Exception;
+	
+	public int save(DataInfoEntityMoveTmp data) throws Exception;
+	
+	public int insertBatch(List<DataInfoEntityMoveTmp> list) throws Exception;
+
+}
diff --git a/src/com/platform/service/IMySqlService.java b/src/com/platform/service/IMySqlService.java
index 4ab96ab0..a49dde61 100644
--- a/src/com/platform/service/IMySqlService.java
+++ b/src/com/platform/service/IMySqlService.java
@@ -1,25 +1,25 @@
-package com.platform.service;
-
-import java.util.List;
-
-import com.platform.entities.GatherOracleInfo;
-
-public interface IMySqlService {
-	
-	/**
-	 * @return 查询
-	 * @throws Exception
-	 */
-	public List<GatherOracleInfo> findAllMySql() throws Exception;
-	
-	/** 删除
-	 * @return
-	 * @throws Exception
-	 */
-	public int deleteMySql(int id) throws Exception;
-	
-	public int insertOracle(GatherOracleInfo oracle) throws Exception;
-	
-	public int updateOracle(GatherOracleInfo oracle) throws Exception;
-
-}
+package com.platform.service;
+
+import java.util.List;
+
+import com.platform.entities.GatherOracleInfo;
+
+public interface IMySqlService {
+	
+	/**
+	 * @return 查询
+	 * @throws Exception
+	 */
+	public List<GatherOracleInfo> findAllMySql() throws Exception;
+	
+	/** 删除
+	 * @return
+	 * @throws Exception
+	 */
+	public int deleteMySql(int id) throws Exception;
+	
+	public int insertOracle(GatherOracleInfo oracle) throws Exception;
+	
+	public int updateOracle(GatherOracleInfo oracle) throws Exception;
+
+}
diff --git a/src/com/platform/service/IOracleExtractService.java b/src/com/platform/service/IOracleExtractService.java
index 7d4e9418..87386f82 100644
--- a/src/com/platform/service/IOracleExtractService.java
+++ b/src/com/platform/service/IOracleExtractService.java
@@ -1,22 +1,22 @@
-package com.platform.service;
-
-import java.util.List;
-import java.util.Map;
-
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.GatherOracleInfo;
-import com.platform.entities.OracleConnectorParams;
-
-public interface IOracleExtractService {
-	
-	/** 抽取数据库
-	 * @param name
-	 * @param dataInfo //采集库连接参数
-	 * @param oracleConnect
-	 * @return
-	 * @throws Exception
-	 */
-//	public boolean extractOracle(String name, List<OracleConnectorParams> dataInfos, GatherOracleInfo oracleConnect) throws Exception;
-//	public boolean extractOracle(String name, List<DataInfoEntity> dataInfos, Map<String, String> oracleConnect) throws Exception;
-	public boolean extractOracle(String name, List<Map<String, String>> dataInfo, Map<String, String> oracleConnect) throws Exception;
-}
+package com.platform.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.GatherOracleInfo;
+import com.platform.entities.OracleConnectorParams;
+
+public interface IOracleExtractService {
+	
+	/** 抽取数据库
+	 * @param name
+	 * @param dataInfo //采集库连接参数
+	 * @param oracleConnect
+	 * @return
+	 * @throws Exception
+	 */
+//	public boolean extractOracle(String name, List<OracleConnectorParams> dataInfos, GatherOracleInfo oracleConnect) throws Exception;
+//	public boolean extractOracle(String name, List<DataInfoEntity> dataInfos, Map<String, String> oracleConnect) throws Exception;
+	public boolean extractOracle(String name, List<Map<String, String>> dataInfo, Map<String, String> oracleConnect) throws Exception;
+}
diff --git a/src/com/platform/service/OracleExtractHelper.java b/src/com/platform/service/OracleExtractHelper.java
index 82228e28..b8c919ad 100644
--- a/src/com/platform/service/OracleExtractHelper.java
+++ b/src/com/platform/service/OracleExtractHelper.java
@@ -1,163 +1,180 @@
-package com.platform.service;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import com.platform.entities.GatherOracleInfo;
-import com.platform.entities.OracleConnectorParams;
-import com.platform.oracle.OracleConnector;
-import com.platform.utils.Configs;
-import com.platform.utils.FileOperateHelper;
-
-public class OracleExtractHelper {
-
-	private OracleConnector oConnector;
-
-	/**
-	 * 判断dblink是否已经存在
-	 * 
-	 * @param conn
-	 * @param linkName
-	 *            dblink的名称
-	 * @return
-	 */
-	private boolean hasSameNameDBLink(Connection conn, String linkName) {
-		boolean flag = false;
-		String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK=" + linkName;
-		ResultSet rSet = oConnector.getSQLExecResultSet(conn, sql);
-		try {
-			rSet.last();
-			if (rSet.getRow() > 0)
-				flag = true;
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return flag;
-	}
-
-	/**
-	 * 创建dblink
-	 * 
-<<<<<<< HEAD
-<<<<<<< HEAD
-	 * @param conn
-	 * @param oc
-=======
-	 * @param conn 汇总库的连接
-	 * @param oc 采集库
->>>>>>> 355b6e47a4fa8d058029ec939fe4fefdaa751275
-=======
-	 * @param conn 汇总库的连接
-	 * @param oc 采集库
->>>>>>> web_backend_develope
-	 *            dblink连接参数实体
-	 */
-	public void createDBLink(Connection conn, OracleConnectorParams oc) {
-		String linkName = "LinkTo" + oc.getName();
-		String sql = "CREATE PUBLIC DATABASE LINK "
-				+ linkName
-				+ " CONNECT TO "
-				+ oc.getUser()
-				+ " IDENTIFIED BY "
-				+ oc.getPassword()
-				+ " USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = "
-				+ oc.getIp() + ")(PORT = " + oc.getPort()
-				+ ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName()
-				+ ")))';";
-		if (null != oc) {
-			if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink,在创建dblink
-				String deleteSql = "DROP PUBLIC DATABASE LINK LinkTo"
-						+ linkName;
-				FileOperateHelper
-						.fileWrite(
-								Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
-								deleteSql);
-				if (oConnector.execOracleSQL(conn, deleteSql)) {
-					FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
-							+ oc.getName(), sql);
-					oConnector.execOracleSQL(conn, sql);
-				} else {
-					Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!");
-					FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
-							+ oc.getName(), "删除已有的DBLink失败,无法创建新的DBLink!");
-				}
-
-			} else {
-				// 否则,创建dblink
-				oConnector.execOracleSQL(conn, sql);
-				FileOperateHelper.fileWrite(
-						Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql);
-			}
-		}
-	}
-
-	/**
-	 * 创建表空间
-	 * 
-	 * @param conn 汇总库连接
-	 * @param oc 汇总库信息
-	 * @return
-	 */
-	public boolean createTableSpace(Connection conn, GatherOracleInfo oc) {
-		String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '"
-				+ Configs.GATHER_TABLESPACE_NAME + "'";
-		if (oConnector.execOracleSQL(conn, tmpSql)) {
-			return true;
-		} else {
-			String sql = "create tablespace " + Configs.GATHER_TABLESPACE_NAME
-					+ " datafile '" + Configs.GATHER_TABLESPACE_PATH
-					+ Configs.GATHER_TABLESPACE_NAME + ".dbf"
-					+ "' size 512M autoextend on next 512M maxsize unlimited";
-			return oConnector.execOracleSQL(conn, sql);
-		}
-	}
-
-	/**
-	 * 创建用户并授权
-	 * 
-	 * @param conn 汇总库连接
-	 * @param oc  汇总库信息
-	 */
-	public void createUser(Connection conn, GatherOracleInfo oc) {
-		String strTUser = oc.getName() + Configs.TABLE_SUFFIX;
-		String sql = "Create user " + strTUser + " default tablespace "
-				+ Configs.GATHER_TABLESPACE_NAME + " identified by "
-				+ Configs.GATHER_TABLE_PASSWORD;
-		String grantSql = "grant connect, resource, dba to " + strTUser;
-		oConnector.execOracleSQL(conn, sql);
-		oConnector.execOracleSQL(conn, grantSql);
-	}
-
-	/**
-	 * 执行汇总操作
-	 * 
-	 * @param conn 汇总库连接
-	 * @param oc 采集库
-	 */
-	public void extractColleDB(Connection conn, OracleConnectorParams oc) {
-		String strTUser = oc.getName() + Configs.TABLE_SUFFIX;
-		String sql = "SELECT 'create table "
-				+ strTUser
-				+ ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||"
-				+ "'@linkTo"
-				+ oc.getName()
-				+ ";' FROM dba_tables@linkTo"
-				+ oc.getName()
-				+ " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')"
-				+ " and t.owner||t.table_name not in (select owner||table_name from dba_tables@linkTo"
-				+ oc.getName() + " where 'data_type'='CLOB')";
-		ResultSet rsSet = oConnector.getSQLExecResultSet(conn, sql);
-		try {
-			while (rsSet.next()) {
-				String resultSql = rsSet.getString(0);
-				oConnector.execOracleSQL(conn, resultSql);
-			}
-		} catch (SQLException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-	}
-}
+package com.platform.service;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import com.base.Custom4exception;
+import com.base.CustomException;
+import com.platform.entities.GatherOracleInfo;
+import com.platform.entities.OracleConnectorParams;
+import com.platform.oracle.OracleConnector;
+import com.platform.utils.Configs;
+import com.platform.utils.FileOperateHelper;
+
+public class OracleExtractHelper {
+
+	private OracleConnector oConnector;
+
+	/**
+	 * 判断dblink是否已经存在
+	 * 
+	 * @param conn
+	 * @param linkName
+	 *            dblink的名称
+	 * @return
+	 */
+	private boolean hasSameNameDBLink(Connection conn, String linkName) {
+		boolean flag = false;
+		String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK=" + linkName;
+		ResultSet rSet = oConnector.getSQLExecResultSet(conn, sql);
+		try {
+			rSet.last();
+			if (rSet.getRow() > 0)
+				flag = true;
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return flag;
+	}
+
+	/**
+	 * 创建dblink
+	 * 
+	 * @param conn 汇总库的连接
+	 * @param oc 采集库
+	 *            dblink连接参数实体
+	 */
+	public void createDBLink(Connection conn, OracleConnectorParams oc) {
+		String linkName = "LinkTo" + oc.getName();
+		String sql = "CREATE PUBLIC DATABASE LINK "
+				+ linkName
+				+ " CONNECT TO "
+				+ oc.getUser()
+				+ " IDENTIFIED BY "
+				+ oc.getPassword()
+				+ " USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = "
+				+ oc.getIp() + ")(PORT = " + oc.getPort()
+				+ ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName()
+				+ ")))';";
+		if (null != oc) {
+			if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink,在创建dblink
+				String deleteSql = "DROP PUBLIC DATABASE LINK LinkTo"
+						+ linkName;
+				FileOperateHelper
+						.fileWrite(
+								Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
+								deleteSql+"\r\n");
+				if (oConnector.execOracleSQL(conn, deleteSql)) {
+					FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
+							+ oc.getName(), sql+"\r\n");
+					oConnector.execOracleSQL(conn, sql);
+				} else {
+					Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!");
+					FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
+							+ oc.getName(), "删除已有的DBLink失败,无法创建新的DBLink!"+"\r\n");
+				}
+
+			} else {
+				// 否则,创建dblink
+				oConnector.execOracleSQL(conn, sql);
+				FileOperateHelper.fileWrite(
+						Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql);
+			}
+		}
+	}
+
+	/**
+	 * 创建表空间
+	 * 
+	 * @param conn 汇总库连接
+	 * @param oc 汇总库信息
+	 * @return
+	 */
+	public boolean createTableSpace(Connection conn, GatherOracleInfo oc) {
+		String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '"
+				+ Configs.GATHER_TABLESPACE_NAME + "'";
+		if (oConnector.execOracleSQL(conn, tmpSql)) {
+			FileOperateHelper
+			.fileWrite(
+					Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
+					tmpSql+"\r\n");
+			return true;
+		} else {
+			String sql = "create tablespace " + Configs.GATHER_TABLESPACE_NAME
+					+ " datafile '" + Configs.GATHER_TABLESPACE_PATH
+					+ Configs.GATHER_TABLESPACE_NAME + ".dbf"
+					+ "' size 512M autoextend on next 512M maxsize unlimited";
+			FileOperateHelper
+			.fileWrite(
+					Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
+					sql+"\r\n");
+			return oConnector.execOracleSQL(conn, sql);
+		}
+	}
+
+	/**
+	 * 创建用户并授权
+	 * 
+	 * @param conn 汇总库连接
+	 * @param oc  汇总库信息
+	 */
+	public void createUser(Connection conn, GatherOracleInfo oc) {
+		String strTUser = oc.getName() + Configs.TABLE_SUFFIX;
+		String sql = "Create user " + strTUser + " default tablespace "
+				+ Configs.GATHER_TABLESPACE_NAME + " identified by "
+				+ Configs.GATHER_TABLE_PASSWORD;
+		String grantSql = "grant connect, resource, dba to " + strTUser;
+		
+		oConnector.execOracleSQL(conn, sql);
+		FileOperateHelper
+		.fileWrite(
+				Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
+				sql+"\r\n");
+		
+		oConnector.execOracleSQL(conn, grantSql);
+		FileOperateHelper
+		.fileWrite(
+				Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
+				grantSql+"\r\n");
+	}
+
+	/**
+	 * 执行汇总操作
+	 * 
+	 * @param conn 汇总库连接
+	 * @param oc 采集库
+	 */
+	public void extractColleDB(Connection conn, OracleConnectorParams oc) {
+		String strTUser = oc.getName() + Configs.TABLE_SUFFIX;
+		String sql = "SELECT 'create table "
+				+ strTUser
+				+ ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||"
+				+ "'@linkTo"
+				+ oc.getName()
+				+ ";' FROM dba_tables@linkTo"
+				+ oc.getName()
+				+ " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')"
+				+ " and t.owner||t.table_name not in (select owner||table_name from dba_tables@linkTo"
+				+ oc.getName() + " where 'data_type'='CLOB')";
+		ResultSet rsSet = oConnector.getSQLExecResultSet(conn, sql);
+		FileOperateHelper
+		.fileWrite(
+				Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
+				sql+"\r\n");
+		try {
+			while (rsSet.next()) {
+				String resultSql = rsSet.getString(0);
+				oConnector.execOracleSQL(conn, resultSql);
+				FileOperateHelper
+				.fileWrite(
+						Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
+						resultSql+"\r\n");
+			}
+		} catch (SQLException e) {
+			new CustomException(Custom4exception.threadVolume_Oracle_Except, e);
+		}
+
+	}
+}
diff --git a/src/com/platform/service/OracleExtractService.java b/src/com/platform/service/OracleExtractService.java
index 9b858706..1b23ed7c 100644
--- a/src/com/platform/service/OracleExtractService.java
+++ b/src/com/platform/service/OracleExtractService.java
@@ -1,24 +1,24 @@
-package com.platform.service;
-
-
-
-import com.platform.entities.OracleConnectorParams;
-import com.platform.oracle.OracleConnector;
-import com.platform.utils.Configs;
-
-public class OracleExtractService extends Thread implements Runnable {
-	private OracleConnectorParams ocp;
-	private java.sql.Connection conn;
-	
-	public OracleExtractService(OracleConnectorParams ocp){
-		this.ocp=ocp;
-		String url  = "";
-		this.conn=OracleConnector.ConnectionBuilder(url, Configs.GATHER_USER_NAME, Configs.GATHER_USER_PASSWORD);
-	}
-	@Override
-	public void run() {
-		// TODO Auto-generated method stub
-		
-	}
-	
-}
+package com.platform.service;
+
+
+
+import com.platform.entities.OracleConnectorParams;
+import com.platform.oracle.OracleConnector;
+import com.platform.utils.Configs;
+
+public class OracleExtractService extends Thread implements Runnable {
+	private OracleConnectorParams ocp;
+	private java.sql.Connection conn;
+	
+	public OracleExtractService(OracleConnectorParams ocp){
+		this.ocp=ocp;
+		String url  = "";
+		this.conn=OracleConnector.ConnectionBuilder(url, Configs.GATHER_USER_NAME, Configs.GATHER_USER_PASSWORD);
+	}
+	@Override
+	public void run() {
+		// TODO Auto-generated method stub
+		
+	}
+	
+}
diff --git a/src/com/platform/service/OracleStatusService.java b/src/com/platform/service/OracleStatusService.java
index 1ab45fb4..d9b006e7 100644
--- a/src/com/platform/service/OracleStatusService.java
+++ b/src/com/platform/service/OracleStatusService.java
@@ -1,171 +1,171 @@
-package com.platform.service;
-
-import io.fabric8.kubernetes.api.model.Pod;
-import io.fabric8.kubernetes.api.model.ReplicationController;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import com.platform.entities.OracleConnectorParams;
-import com.platform.kubernetes.SimpleKubeClient;
-import com.platform.oracle.OracleConnector;
-import com.platform.utils.Configs;
-
-public class OracleStatusService {
-	private static Map<String, Timer> alliveTask = new Hashtable<String, Timer>();
-	public final static int EXEC_TIME = 9;// 连接多少次后不成功,取消链接
-	public final static long INTERVAL_TIME = 60 * 1000;// 每隔多少毫秒执行一次连接任务
-	public final static long DELAY_TIME = 30 * 1000; // 延迟多少秒后执行
-
-	public void connectToOracle(String replicasName) {
-		SimpleKubeClient sKubeClient = new SimpleKubeClient();
-		if (alliveTask.containsKey(replicasName)) {
-			killAlliveTask(replicasName);
-		}
-		OracleConnectorParams orp = new OracleConnectorParams();
-		Timer timer = new Timer();
-		alliveTask.put(replicasName, timer);
-		timer.schedule(new connectTask(replicasName, orp, sKubeClient), DELAY_TIME,
-				INTERVAL_TIME);
-
-	}
-
-	public void cancelToOracle(String replicasName, String operate) {
-		if (operate.equals("stop")) {
-			SimpleKubeClient sKubeClient = new SimpleKubeClient();
-			sKubeClient.updateOrAddReplicasLabelById(replicasName, "status",
-					"0");
-		}
-		killAlliveTask(replicasName);
-	}
-
-	/**
-	 * 取消并移除指定定时任务
-	 * 
-	 * 
-	 * @param taskName
-	 */
-	public void killAlliveTask(String taskName) {
-		if (alliveTask.containsKey(taskName)) {
-			alliveTask.get(taskName).cancel();
-			alliveTask.remove(taskName);
-		}
-	}
-
-	public void killAlliveTasks(String... tasksName) {
-		for (String taskName : tasksName)
-			killAlliveTask(taskName);
-	}
-
-	/**
-	 * 清空定时任务
-	 */
-	public void cleanUpAlliveTask() {
-		Iterator<Map.Entry<String, Timer>> iterator = alliveTask.entrySet()
-				.iterator();
-		while (iterator.hasNext()) {
-			Map.Entry<String, Timer> entry = iterator.next();
-			entry.getValue().cancel();
-		}
-		alliveTask.clear();
-	}
-
-	/**
-	 * 链接oracle任务类
-	 * 
-	 * @author wuming
-	 * 
-	 */
-	class connectTask extends TimerTask {
-		private String taskName;
-		private int count;
-		private OracleConnectorParams ocp;
-		private SimpleKubeClient client;
-		
-		public connectTask(String taskName, OracleConnectorParams ocp, SimpleKubeClient client){
-			this.taskName = taskName;
-			this.ocp = ocp;
-			this.count = 0;
-			this.client = client;
-		}
-
-		public connectTask(OracleConnectorParams ocp, SimpleKubeClient client) {
-			this.taskName = ocp.getName();
-			this.ocp = ocp;
-			this.count = 0;
-			this.client = client;
-		}
-
-		@Override
-		public void run() {
-			if (count == EXEC_TIME && alliveTask.containsKey(taskName)) { //如果任务已经执行10次,则任务oracle启动失败,并取消oracle连接
-				killAlliveTask(taskName);
-				client.updateOrAddReplicasLabelById(taskName, "status", "1"); //更新ReplicationController标签,将oracle状态标示未1(0:启动中,1:失败,2:成功)
-				Configs.CONSOLE_LOGGER.info("更新replicationController标签: "
-						+ taskName + "\t[标签更新为: 失败]");
-			} else { //否则,执行连接oracle任务,判断oracle是否启动成功
-				Pod pod = filterPod();
-				if (pod != null) {
-					String ip = client.getPodHostIp(pod);
-					int port = client.getPodContainerport(pod);
-					if (ip != null && port != 0) {
-						String url = "jdbc:oracle:thin:@" + ip + ":" + port
-								+ ":" + ocp.getDatabaseName();
-						boolean flag = OracleConnector.canConnect(url, //连接结果返回参数,true标示连接成功,false标示连接失败
-								ocp.getUser(), ocp.getPassword());
-						Configs.CONSOLE_LOGGER.info("url:" + url + ",user:"
-								+ ocp.getUser() + ",password:"
-								+ ocp.getPassword());
-						String message = "失败";
-						if (flag && alliveTask.containsKey(taskName)) {
-							client.updateOrAddReplicasLabelById(taskName,
-									"status", "2");
-							message = "成功";
-							killAlliveTask(taskName); // 连接成功,取消连接
-							Configs.CONSOLE_LOGGER
-									.info("更新replicationController标签: "
-											+ taskName + "\t[标签更新为: 成功]");
-						}
-						Configs.CONSOLE_LOGGER.info("连接到数据库服务: " + taskName
-								+ "\t[连接结果: " + message + "]");
-					}
-				}
-			}
-			count++;
-		}
-
-		/**
-		 * 获取oracle的连接ip地址和端口号
-		 * @return
-		 */
-		private Pod filterPod() {
-			Pod pod = null;
-			ReplicationController replicationController = client
-					.getReplicationController(taskName);
-			if (null != replicationController) {
-				List<Pod> filterPods = client
-						.getPodsForApplicaList(replicationController);
-				if (filterPods != null && filterPods.size() > 0) {
-					pod = filterPods.get(0);
-				}
-			}
-			return pod;
-		}
-
-		public String getTaskName() {
-			return taskName;
-		}
-
-		public void setTaskName(String taskName) {
-			this.taskName = taskName;
-		}
-
-		public int getCount() {
-			return count;
-		}
-	}
+package com.platform.service;
+
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.ReplicationController;
+
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import com.platform.entities.OracleConnectorParams;
+import com.platform.kubernetes.SimpleKubeClient;
+import com.platform.oracle.OracleConnector;
+import com.platform.utils.Configs;
+
+public class OracleStatusService {
+	private static Map<String, Timer> alliveTask = new Hashtable<String, Timer>();
+	public final static int EXEC_TIME = 9;// 连接多少次后不成功,取消链接
+	public final static long INTERVAL_TIME = 60 * 1000;// 每隔多少毫秒执行一次连接任务
+	public final static long DELAY_TIME = 30 * 1000; // 延迟多少秒后执行
+
+	public void connectToOracle(String replicasName) {
+		SimpleKubeClient sKubeClient = new SimpleKubeClient();
+		if (alliveTask.containsKey(replicasName)) {
+			killAlliveTask(replicasName);
+		}
+		OracleConnectorParams orp = new OracleConnectorParams();
+		Timer timer = new Timer();
+		alliveTask.put(replicasName, timer);
+		timer.schedule(new connectTask(replicasName, orp, sKubeClient), DELAY_TIME,
+				INTERVAL_TIME);
+
+	}
+
+	public void cancelToOracle(String replicasName, String operate) {
+		if (operate.equals("stop")) {
+			SimpleKubeClient sKubeClient = new SimpleKubeClient();
+			sKubeClient.updateOrAddReplicasLabelById(replicasName, "status",
+					"0");
+		}
+		killAlliveTask(replicasName);
+	}
+
+	/**
+	 * 取消并移除指定定时任务
+	 * 
+	 * 
+	 * @param taskName
+	 */
+	public void killAlliveTask(String taskName) {
+		if (alliveTask.containsKey(taskName)) {
+			alliveTask.get(taskName).cancel();
+			alliveTask.remove(taskName);
+		}
+	}
+
+	public void killAlliveTasks(String... tasksName) {
+		for (String taskName : tasksName)
+			killAlliveTask(taskName);
+	}
+
+	/**
+	 * 清空定时任务
+	 */
+	public void cleanUpAlliveTask() {
+		Iterator<Map.Entry<String, Timer>> iterator = alliveTask.entrySet()
+				.iterator();
+		while (iterator.hasNext()) {
+			Map.Entry<String, Timer> entry = iterator.next();
+			entry.getValue().cancel();
+		}
+		alliveTask.clear();
+	}
+
+	/**
+	 * 链接oracle任务类
+	 * 
+	 * @author wuming
+	 * 
+	 */
+	class connectTask extends TimerTask {
+		private String taskName;
+		private int count;
+		private OracleConnectorParams ocp;
+		private SimpleKubeClient client;
+		
+		public connectTask(String taskName, OracleConnectorParams ocp, SimpleKubeClient client){
+			this.taskName = taskName;
+			this.ocp = ocp;
+			this.count = 0;
+			this.client = client;
+		}
+
+		public connectTask(OracleConnectorParams ocp, SimpleKubeClient client) {
+			this.taskName = ocp.getName();
+			this.ocp = ocp;
+			this.count = 0;
+			this.client = client;
+		}
+
+		@Override
+		public void run() {
+			if (count == EXEC_TIME && alliveTask.containsKey(taskName)) { //如果任务已经执行10次,则任务oracle启动失败,并取消oracle连接
+				killAlliveTask(taskName);
+				client.updateOrAddReplicasLabelById(taskName, "status", "1"); //更新ReplicationController标签,将oracle状态标示未1(0:启动中,1:失败,2:成功)
+				Configs.CONSOLE_LOGGER.info("更新replicationController标签: "
+						+ taskName + "\t[标签更新为: 失败]");
+			} else { //否则,执行连接oracle任务,判断oracle是否启动成功
+				Pod pod = filterPod();
+				if (pod != null) {
+					String ip = client.getPodHostIp(pod);
+					int port = client.getPodContainerport(pod);
+					if (ip != null && port != 0) {
+						String url = "jdbc:oracle:thin:@" + ip + ":" + port
+								+ ":" + ocp.getDatabaseName();
+						boolean flag = OracleConnector.canConnect(url, //连接结果返回参数,true标示连接成功,false标示连接失败
+								ocp.getUser(), ocp.getPassword());
+						Configs.CONSOLE_LOGGER.info("url:" + url + ",user:"
+								+ ocp.getUser() + ",password:"
+								+ ocp.getPassword());
+						String message = "失败";
+						if (flag && alliveTask.containsKey(taskName)) {
+							client.updateOrAddReplicasLabelById(taskName,
+									"status", "2");
+							message = "成功";
+							killAlliveTask(taskName); // 连接成功,取消连接
+							Configs.CONSOLE_LOGGER
+									.info("更新replicationController标签: "
+											+ taskName + "\t[标签更新为: 成功]");
+						}
+						Configs.CONSOLE_LOGGER.info("连接到数据库服务: " + taskName
+								+ "\t[连接结果: " + message + "]");
+					}
+				}
+			}
+			count++;
+		}
+
+		/**
+		 * 获取oracle的连接ip地址和端口号
+		 * @return
+		 */
+		private Pod filterPod() {
+			Pod pod = null;
+			ReplicationController replicationController = client
+					.getReplicationController(taskName);
+			if (null != replicationController) {
+				List<Pod> filterPods = client
+						.getPodsForApplicaList(replicationController);
+				if (filterPods != null && filterPods.size() > 0) {
+					pod = filterPods.get(0);
+				}
+			}
+			return pod;
+		}
+
+		public String getTaskName() {
+			return taskName;
+		}
+
+		public void setTaskName(String taskName) {
+			this.taskName = taskName;
+		}
+
+		public int getCount() {
+			return count;
+		}
+	}
 }
\ No newline at end of file
diff --git a/src/com/platform/service/SimplePropertyReader.java b/src/com/platform/service/SimplePropertyReader.java
index 51862917..4b34cb29 100644
--- a/src/com/platform/service/SimplePropertyReader.java
+++ b/src/com/platform/service/SimplePropertyReader.java
@@ -1,20 +1,20 @@
-package com.platform.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-
-import com.platform.entities.SimpleConfigParamsBean;
-
-public class SimplePropertyReader {
-	@Autowired @Qualifier("simpeConfig")
-	private SimpleConfigParamsBean configParamsBean;
-	
-	public void setConfigParamsBean(SimpleConfigParamsBean configParamsBean) {
-		this.configParamsBean = configParamsBean;
-	}
-
-	public SimpleConfigParamsBean getConfigParamsBean() {
-		return configParamsBean;
-	}
-	
-}
+package com.platform.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+
+import com.platform.entities.SimpleConfigParamsBean;
+
+public class SimplePropertyReader {
+	@Autowired @Qualifier("simpeConfig")
+	private SimpleConfigParamsBean configParamsBean;
+	
+	public void setConfigParamsBean(SimpleConfigParamsBean configParamsBean) {
+		this.configParamsBean = configParamsBean;
+	}
+
+	public SimpleConfigParamsBean getConfigParamsBean() {
+		return configParamsBean;
+	}
+	
+}
diff --git a/src/com/platform/service/impl/CodeServiceImpl.java b/src/com/platform/service/impl/CodeServiceImpl.java
index 297906ff..efda3f22 100644
--- a/src/com/platform/service/impl/CodeServiceImpl.java
+++ b/src/com/platform/service/impl/CodeServiceImpl.java
@@ -1,66 +1,66 @@
-package com.platform.service.impl;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-
-import com.platform.dao.DataInfoDao;
-import com.platform.dao.IRegionalismCodeDao;
-import com.platform.dao.ISystemCodeDao;
-import com.platform.entities.RegionalismEntity;
-import com.platform.entities.SystemEntity;
-import com.platform.service.ICodeService;
-
-@Service(value = "codeService")
-public class CodeServiceImpl implements ICodeService {
-	
-	@Resource(name = "systemCodeDao")
-	private ISystemCodeDao systemCodeDao;
-	
-	@Resource(name = "regionalismCodeDao")
-	private IRegionalismCodeDao regionalismCodeDao;
-	
-	@Override
-	public List<SystemEntity> findSystem(SystemEntity sys) throws Exception {
-		List<SystemEntity> result = null;
-		try {
-			result = new ArrayList<SystemEntity>();
-			result = systemCodeDao.findSubSystem(sys);
-		} catch (Exception e) {
-			// TODO: handle exception
-		}
-		return result;
-	}
-
-	@Override
-	public List<RegionalismEntity> findRegionalism(RegionalismEntity region) throws Exception {
-		List<RegionalismEntity> result = null;
-		try {
-			result = regionalismCodeDao.findSubRegionalism(region);
-		} catch (Exception e) {
-			// TODO: handle exception
-		}
-		return result;
-	}
-
-	@Override
-	public Map<String, Object> findAll() throws Exception {
-		Map<String, Object> result = new HashMap<String, Object>();
-		try {
-			List<RegionalismEntity> regions = regionalismCodeDao.findAllRegionalism();
-			List<SystemEntity> syss = systemCodeDao.findAllSystem();
-			result.put("system", syss);
-			result.put("regionalism", regions);
-		} catch (Exception e) {
-			// TODO: handle exception
-		}
-		return result;
-	}
-	
-
-}
+package com.platform.service.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.platform.dao.DataInfoDao;
+import com.platform.dao.IRegionalismCodeDao;
+import com.platform.dao.ISystemCodeDao;
+import com.platform.entities.RegionalismEntity;
+import com.platform.entities.SystemEntity;
+import com.platform.service.ICodeService;
+
+@Service(value = "codeService")
+public class CodeServiceImpl implements ICodeService {
+	
+	@Resource(name = "systemCodeDao")
+	private ISystemCodeDao systemCodeDao;
+	
+	@Resource(name = "regionalismCodeDao")
+	private IRegionalismCodeDao regionalismCodeDao;
+	
+	@Override
+	public List<SystemEntity> findSystem(SystemEntity sys) throws Exception {
+		List<SystemEntity> result = null;
+		try {
+			result = new ArrayList<SystemEntity>();
+			result = systemCodeDao.findSubSystem(sys);
+		} catch (Exception e) {
+			// TODO: handle exception
+		}
+		return result;
+	}
+
+	@Override
+	public List<RegionalismEntity> findRegionalism(RegionalismEntity region) throws Exception {
+		List<RegionalismEntity> result = null;
+		try {
+			result = regionalismCodeDao.findSubRegionalism(region);
+		} catch (Exception e) {
+			// TODO: handle exception
+		}
+		return result;
+	}
+
+	@Override
+	public Map<String, Object> findAll() throws Exception {
+		Map<String, Object> result = new HashMap<String, Object>();
+		try {
+			List<RegionalismEntity> regions = regionalismCodeDao.findAllRegionalism();
+			List<SystemEntity> syss = systemCodeDao.findAllSystem();
+			result.put("system", syss);
+			result.put("regionalism", regions);
+		} catch (Exception e) {
+			// TODO: handle exception
+		}
+		return result;
+	}
+	
+
+}
diff --git a/src/com/platform/service/impl/GfsServiceImpl.java b/src/com/platform/service/impl/GfsServiceImpl.java
index 39ea77d2..b4088827 100644
--- a/src/com/platform/service/impl/GfsServiceImpl.java
+++ b/src/com/platform/service/impl/GfsServiceImpl.java
@@ -1,161 +1,161 @@
-
-/**
- * 文件名   :   GfsServiceImpl.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  chen
- * 版本       :   <版本>
- * 修改时间:      2016年9月8日
- * 修改内容:      <修改内容>
- */
-package com.platform.service.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.stereotype.Service;
-
-import com.platform.entities.Brick;
-import com.platform.entities.FolderNode;
-import com.platform.entities.VolumeEntity;
-import com.platform.glusterfs.CopyData;
-import com.platform.glusterfs.GetTreeData;
-import com.platform.glusterfs.VolumeInfo;
-import com.platform.service.IGfsService;
-import com.platform.utils.CacheTreeData;
-import com.platform.utils.ThreadVolume;
-import com.platform.utils.getTreeDataByPath;
-
-/**
- * <一句话功能简述> gfs功能实现类
- * <功能详细描述>
- * @author    chen
- * @version   [版本号,2016年9月8日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-@Service(value = "gfsService")
-public class GfsServiceImpl implements IGfsService {
-	
-	/** gfs目录树形查询  */
-	private getTreeDataByPath getFolder = new getTreeDataByPath();
-
-	/** 数据迁移实现  */
-	private CopyData copydata = new CopyData();
-	
-	/**  Volume信息查询  */
-	private VolumeInfo volumeInfo = new VolumeInfo();
-
-	@Override
-	public FolderNode getFolder(String path) {
-		FolderNode result = getFolder.findByPath(path);
-		return result;
-	}
-
-	@Override
-	public int copyFolder(List<String> srcFolders, String dstFolder, String name)
-			throws Exception {
-		int status = 0 ;
-		if (null != srcFolders) {
-			
-			for (String string : srcFolders) {
-				status	= copydata.copyFolderFilesAnyway(string, dstFolder, name);
-			}
-		}
-		return status;
-	}
-
-	/* (non-Javadoc)
-	 * @see com.platform.service.IGfsService#getAllVolume()
-	 */
-	@Override
-	public List<VolumeEntity> getAllVolumes() throws Exception {
-		List<VolumeEntity> volumeList = CacheTreeData.getVolumeList();
-		if (null == volumeList) {
-			return new ArrayList<VolumeEntity>();
-		}
-		for (VolumeEntity volume : volumeList) {
-//			VolumeEntity volume = new VolumeEntity();
-//			volume.setName(volumeName);
-//			List<String> path = volumeInfo.getVolumeMountPoint(volumeName);
-//			//默认加载第一个路径
-//			if (null != path && path.size() > 0) {
-//				volume.setPath(path.get(0));
-//			}
-//			volume.setAllSize(volumeInfo.getVolumeAllSize(volumeName));
-//			volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName));
-//			//TODO 查询brick--
-//			//返回     ip:path
-//			List<String> brickStrs = volumeInfo.getVolumeBricks(volumeName);
-//			//brick已用大小:
-//			Map<String, Double> usedSize = volumeInfo.getVolumebricksDataSize(volumeName);
-//			Map<String, Double> availableSize = volumeInfo.getVolumebricksAvailableSize(volumeName);
-//			
-//			
-//			List<Brick> brickList = new ArrayList<Brick>();
-//			for (String brickIpPath : brickStrs) {
-//				Brick b = new Brick();
-//				String ipAndpath[] = brickIpPath.split(":");
-//				String brickip = ipAndpath[0];
-//				String brickpath = ipAndpath[1];
-//				//iP ,  path ,  
-//				b.setIp(brickip);
-//				b.setPath(brickpath);
-//				b.setAvailableSize(availableSize.get(brickIpPath));
-//				b.setUsedSize(usedSize.get(brickIpPath));
-//				brickList.add(b);
-//			}
-//			volume.setBrick(brickList);
-			if (null != volume.getPath()) {
-//			获得   folder      目录
-				List<FolderNode> list = new ArrayList<FolderNode>();
-					FolderNode currNode = getFolder(volume.getPath());
-					if (null != currNode && null != currNode.getChildNodes()) {
-						list.addAll(currNode.getChildNodes());
-					}
-				volume.setFolder(list);
-			}
-		}
-		return volumeList;
-	}
-
-	@Override
-	public VolumeEntity getOneVolume(String volumeName) throws Exception {
-		VolumeEntity volume = new VolumeEntity();
-		volume.setName(volumeName);
-		List<String> path = volumeInfo.getVolumeMountPoint(volumeName);
-		if (null != path && path.size() > 0) {
-			volume.setPath(path.get(0));
-		}
-		volume.setAllSize(volumeInfo.getVolumeAvailableSize(volumeName));
-		volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName));
-//		volume.setBrick(brick);
-		if (null != volume.getPath()) {
-			List<FolderNode> list = new ArrayList<FolderNode>();
-			if (null != path && path.size() > 0) {
-				FolderNode currNode = getFolder(path.get(0));
-				if (null != currNode && null != currNode.getChildNodes()) {
-					list.addAll(currNode.getChildNodes());
-				}
-			}
-			volume.setFolder(list);
-		}
-		return volume;
-	}
-
-	@Override
-	public int moveData(String volumeName, String srcPath, String dstPath)
-			throws Exception {
-		
-		int result = copydata.copyFolderFilesAnyway(srcPath, dstPath, "app");
-		return result;
-	}
-
-	@Override
-	public int deleteData(String volumeName, String srcPath) throws Exception {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}
+
+/**
+ * 文件名   :   GfsServiceImpl.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  chen
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月8日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+import com.platform.entities.Brick;
+import com.platform.entities.FolderNode;
+import com.platform.entities.VolumeEntity;
+import com.platform.glusterfs.CopyData;
+import com.platform.glusterfs.GetTreeData;
+import com.platform.glusterfs.VolumeInfo;
+import com.platform.service.IGfsService;
+import com.platform.utils.CacheTreeData;
+import com.platform.utils.ThreadVolume;
+import com.platform.utils.getTreeDataByPath;
+
+/**
+ * <一句话功能简述> gfs功能实现类
+ * <功能详细描述>
+ * @author    chen
+ * @version   [版本号,2016年9月8日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+@Service(value = "gfsService")
+public class GfsServiceImpl implements IGfsService {
+	
+	/** gfs目录树形查询  */
+	private getTreeDataByPath getFolder = new getTreeDataByPath();
+
+	/** 数据迁移实现  */
+	private CopyData copydata = new CopyData();
+	
+	/**  Volume信息查询  */
+	private VolumeInfo volumeInfo = new VolumeInfo();
+
+	@Override
+	public FolderNode getFolder(String path) {
+		FolderNode result = getFolder.findByPath(path);
+		return result;
+	}
+
+	@Override
+	public int copyFolder(List<String> srcFolders, String dstFolder, String name)
+			throws Exception {
+		int status = 0 ;
+		if (null != srcFolders) {
+			
+			for (String string : srcFolders) {
+				status	= copydata.copyFolderFilesAnyway(string, dstFolder, name);
+			}
+		}
+		return status;
+	}
+
+	/* (non-Javadoc)
+	 * @see com.platform.service.IGfsService#getAllVolume()
+	 */
+	@Override
+	public List<VolumeEntity> getAllVolumes() throws Exception {
+		List<VolumeEntity> volumeList = CacheTreeData.getVolumeList();
+		if (null == volumeList) {
+			return new ArrayList<VolumeEntity>();
+		}
+		for (VolumeEntity volume : volumeList) {
+//			VolumeEntity volume = new VolumeEntity();
+//			volume.setName(volumeName);
+//			List<String> path = volumeInfo.getVolumeMountPoint(volumeName);
+//			//默认加载第一个路径
+//			if (null != path && path.size() > 0) {
+//				volume.setPath(path.get(0));
+//			}
+//			volume.setAllSize(volumeInfo.getVolumeAllSize(volumeName));
+//			volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName));
+//			//TODO 查询brick--
+//			//返回     ip:path
+//			List<String> brickStrs = volumeInfo.getVolumeBricks(volumeName);
+//			//brick已用大小:
+//			Map<String, Double> usedSize = volumeInfo.getVolumebricksDataSize(volumeName);
+//			Map<String, Double> availableSize = volumeInfo.getVolumebricksAvailableSize(volumeName);
+//			
+//			
+//			List<Brick> brickList = new ArrayList<Brick>();
+//			for (String brickIpPath : brickStrs) {
+//				Brick b = new Brick();
+//				String ipAndpath[] = brickIpPath.split(":");
+//				String brickip = ipAndpath[0];
+//				String brickpath = ipAndpath[1];
+//				//iP ,  path ,  
+//				b.setIp(brickip);
+//				b.setPath(brickpath);
+//				b.setAvailableSize(availableSize.get(brickIpPath));
+//				b.setUsedSize(usedSize.get(brickIpPath));
+//				brickList.add(b);
+//			}
+//			volume.setBrick(brickList);
+			if (null != volume.getPath()) {
+//			获得   folder      目录
+				List<FolderNode> list = new ArrayList<FolderNode>();
+					FolderNode currNode = getFolder(volume.getPath());
+					if (null != currNode && null != currNode.getChildNodes()) {
+						list.addAll(currNode.getChildNodes());
+					}
+				volume.setFolder(list);
+			}
+		}
+		return volumeList;
+	}
+
+	@Override
+	public VolumeEntity getOneVolume(String volumeName) throws Exception {
+		VolumeEntity volume = new VolumeEntity();
+		volume.setName(volumeName);
+		List<String> path = volumeInfo.getVolumeMountPoint(volumeName);
+		if (null != path && path.size() > 0) {
+			volume.setPath(path.get(0));
+		}
+		volume.setAllSize(volumeInfo.getVolumeAvailableSize(volumeName));
+		volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName));
+//		volume.setBrick(brick);
+		if (null != volume.getPath()) {
+			List<FolderNode> list = new ArrayList<FolderNode>();
+			if (null != path && path.size() > 0) {
+				FolderNode currNode = getFolder(path.get(0));
+				if (null != currNode && null != currNode.getChildNodes()) {
+					list.addAll(currNode.getChildNodes());
+				}
+			}
+			volume.setFolder(list);
+		}
+		return volume;
+	}
+
+	@Override
+	public int moveData(String volumeName, String srcPath, String dstPath)
+			throws Exception {
+		
+		int result = copydata.copyFolderFilesAnyway(srcPath, dstPath, "app");
+		return result;
+	}
+
+	@Override
+	public int deleteData(String volumeName, String srcPath) throws Exception {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+}
diff --git a/src/com/platform/service/impl/MoveDataServiceImpl.java b/src/com/platform/service/impl/MoveDataServiceImpl.java
index b5bcf45d..23e78c41 100644
--- a/src/com/platform/service/impl/MoveDataServiceImpl.java
+++ b/src/com/platform/service/impl/MoveDataServiceImpl.java
@@ -1,159 +1,174 @@
-package com.platform.service.impl;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.annotation.Resource;
-
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
-import com.platform.dao.DataInfoDao;
-import com.platform.dao.DataInfoMoveTmpDao;
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.DataInfoEntityMoveTmp;
-import com.platform.glusterfs.CheckoutMD5;
-import com.platform.glusterfs.CopyData;
-import com.platform.glusterfs.RemoveData;
-import com.platform.glusterfs.ShowData;
-import com.platform.service.IMoveDataService;
-import com.platform.utils.Bean2MapUtils;
-import com.platform.utils.Constant;
-import com.platform.utils.DateForm;
-
-@Component
-@Service(value = "moveDataService")
-public class MoveDataServiceImpl implements IMoveDataService {
-
-	@Resource(name = "dataInfoDao")
-	private DataInfoDao dataInfoDao;
-
-	private RemoveData removeservice = new RemoveData();
-
-	/**
-	 * 迁移
-	 */
-	CopyData copy = new CopyData();
-
-	/**
-	 * MD5校验
-	 */
-	CheckoutMD5 check = new CheckoutMD5();
-
-	@Resource(name = "dataInfoMoveTmpDao")
-	private DataInfoMoveTmpDao dataInfoMoveTmpDao;
-
-	/**
-	 * 查看数据
-	 */
-	ShowData show = new ShowData();
-
-	@Override
-	public boolean moveData(List<DataInfoEntity> data, String dstPath)
-			throws Exception {
-		boolean isSuccess = false;
-		String tailPath = "";
-		if (null != data) {
-			// XXX/320198_16/1,or XXX/320122KFQ_15/1 ---> /320198_16/1, or
-			// /320122KFQ_15/1
-			List<DataInfoEntityMoveTmp> exist = dataInfoMoveTmpDao.findAll();
-			List<String> existIds = new ArrayList<String>();
-			if (null != exist) {
-				for (DataInfoEntityMoveTmp dataInfoEntityMoveTmp : exist) {
-					if ("0".equals(dataInfoEntityMoveTmp.getCompleteStatus())
-							|| "1".equals(dataInfoEntityMoveTmp
-									.getCompleteStatus())) {
-						if (null != dataInfoEntityMoveTmp.getDataPath()) {
-							existIds.add(dataInfoEntityMoveTmp.getDataPath());
-						}
-					}
-				}
-			}
-			Pattern pattern = Pattern
-					.compile("\\/\\d+[a-z]*[A-Z]*_\\d+\\/\\d*\\/*$");
-			// 末尾 含有 /
-			Pattern pattern2 = Pattern.compile("\\/$");
-			Matcher matcher2 = pattern2.matcher(dstPath);
-			// 去掉 最后 的 / 符合
-			if (matcher2.find()) {
-				dstPath = dstPath.substring(0, dstPath.length() - 1);
-			}
-			List<DataInfoEntityMoveTmp> moveList = new ArrayList<DataInfoEntityMoveTmp>();
-			for (DataInfoEntity dataInfoEntity : data) {
-				if (existIds.contains(dataInfoEntity.getDataPath())) {
-					continue;
-				}
-				// TODO 正则:取出 data 的后面 的 路径,eg: XXX/320198_16/1,or
-				// XXX/320122KFQ_15/1)
-				Matcher matcher = pattern.matcher(dataInfoEntity.getDataPath());
-				// tailPath 第一个字符是 / 符号取尾:"\\/\\d+[a-z]*[A-Z]*_\\d+\\/\\d*\\/*$"
-				if (matcher.find()) {
-					tailPath = matcher.group();
-				}
-				String finalDestPath = dstPath + tailPath;
-				Matcher matchertmp2 = pattern2.matcher(finalDestPath);
-				// 去掉 最后 的 / 符合
-				if (!matchertmp2.find()) {
-					finalDestPath = finalDestPath + "/";
-				}
-				DataInfoEntityMoveTmp dataMove = new DataInfoEntityMoveTmp();
-				dataMove.setSystemCode(dataInfoEntity.getSystemCode());
-				dataMove.setRegionalismCode(dataInfoEntity.getRegionalismCode());
-				dataMove.setDstPath(finalDestPath);
-				dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
-				dataMove.setFkid(dataInfoEntity.getId());
-				moveList.add(dataMove);
-			}
-			if (moveList.size() > 0) {
-				dataInfoMoveTmpDao.insertBatch(moveList);
-				isSuccess = true;
-			}
-		}
-		return isSuccess;
-	}
-
-	@Override
-	public List<DataInfoEntityMoveTmp> findAll() throws Exception {
-		List<DataInfoEntityMoveTmp> result = new ArrayList<DataInfoEntityMoveTmp>();
-		try {
-			result = dataInfoMoveTmpDao.findAll();
-
-		} catch (Exception e) {
-			System.err.println(e);
-		}
-		return result;
-	}
-
-	@Override
-	public int delete(DataInfoEntityMoveTmp dataMove) throws Exception {
-		if ("1".equals(dataMove.getCompleteStatus())
-				|| "3".equals(dataMove.getCompleteStatus())) {
-			removeservice.deleteFolder(dataMove.getDstPath());
-		}
-		int result = dataInfoMoveTmpDao.remove(dataMove.getId());
-		return result;
-	}
-
-	@Override
-	public int save(DataInfoEntityMoveTmp data) throws Exception {
-		dataInfoMoveTmpDao.save(data);
-		return 0;
-	}
-
-	@Override
-	public int insertBatch(List<DataInfoEntityMoveTmp> list) throws Exception {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	@Override
-	public int update(DataInfoEntityMoveTmp data) throws Exception {
-		int result = dataInfoMoveTmpDao.update(data);
-		return result;
-	}
-
-}
+package com.platform.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.annotation.Resource;
+
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import com.platform.dao.DataInfoDao;
+import com.platform.dao.DataInfoMoveTmpDao;
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.DataInfoEntityMoveTmp;
+import com.platform.entities.FolderNode;
+import com.platform.glusterfs.CheckoutMD5;
+import com.platform.glusterfs.CopyData;
+import com.platform.glusterfs.RemoveData;
+import com.platform.glusterfs.ShowData;
+import com.platform.service.IMoveDataService;
+import com.platform.utils.Bean2MapUtils;
+import com.platform.utils.Constant;
+import com.platform.utils.DateForm;
+
+@Component
+@Service(value = "moveDataService")
+public class MoveDataServiceImpl implements IMoveDataService {
+
+	@Resource(name = "dataInfoDao")
+	private DataInfoDao dataInfoDao;
+
+	private RemoveData removeservice = new RemoveData();
+
+	/**
+	 * 迁移
+	 */
+	CopyData copy = new CopyData();
+
+	/**
+	 * MD5校验
+	 */
+	CheckoutMD5 check = new CheckoutMD5();
+
+	@Resource(name = "dataInfoMoveTmpDao")
+	private DataInfoMoveTmpDao dataInfoMoveTmpDao;
+
+	/**
+	 * 查看数据
+	 */
+	ShowData show = new ShowData();
+
+	@Override
+	public boolean moveData(List<DataInfoEntity> data, FolderNode node)
+			throws Exception {
+		boolean isSuccess = false;
+		String tailPath = "";
+		if (null != data) {
+			// XXX/320198_16/1,or XXX/320122KFQ_15/1 ---> /320198_16/1, or
+			// /320122KFQ_15/1
+			List<DataInfoEntityMoveTmp> exist = dataInfoMoveTmpDao.findAll();
+			List<String> existIds = new ArrayList<String>();
+			if (null != exist) {
+				for (DataInfoEntityMoveTmp dataInfoEntityMoveTmp : exist) {
+					if ("0".equals(dataInfoEntityMoveTmp.getCompleteStatus())
+							|| "1".equals(dataInfoEntityMoveTmp
+									.getCompleteStatus())) {
+						if (null != dataInfoEntityMoveTmp.getDataPath()) {
+							existIds.add(dataInfoEntityMoveTmp.getDataPath());
+						}
+					}
+				}
+			}
+			Pattern pattern = Pattern
+					.compile("\\/\\d+[a-z]*[A-Z]*_\\d+\\/\\d*\\/*$");
+			// 末尾 含有 /
+			Pattern pattern2 = Pattern.compile("\\/$");
+			String dstPath = node.getPath();
+			Matcher matcher2 = pattern2.matcher(dstPath);
+			// 去掉 最后 的 / 符合
+			if (matcher2.find()) {
+				dstPath = dstPath.substring(0, dstPath.length() - 1);
+			}
+			List<DataInfoEntityMoveTmp> moveList = new ArrayList<DataInfoEntityMoveTmp>();
+			for (DataInfoEntity dataInfoEntity : data) {
+				if (existIds.contains(dataInfoEntity.getDataPath())) {
+					continue;
+				}
+				// TODO 正则:取出 data 的后面 的 路径,eg: XXX/320198_16/1,or
+				// XXX/320122KFQ_15/1)
+				Matcher matcher = pattern.matcher(dataInfoEntity.getDataPath());
+				// tailPath 第一个字符是 / 符号取尾:"\\/\\d+[a-z]*[A-Z]*_\\d+\\/\\d*\\/*$"
+				if (matcher.find()) {
+					tailPath = matcher.group();
+				}
+				String finalDestPath = dstPath + tailPath;
+				Matcher matchertmp2 = pattern2.matcher(finalDestPath);
+				// 去掉 最后 的 / 符合
+				if (!matchertmp2.find()) {
+					finalDestPath = finalDestPath + "/";
+				}
+				DataInfoEntityMoveTmp dataMove = new DataInfoEntityMoveTmp();
+				dataMove.setSystemCode(dataInfoEntity.getSystemCode());
+				dataMove.setRegionalismCode(dataInfoEntity.getRegionalismCode());
+				dataMove.setDstPath(finalDestPath);
+				dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
+				dataMove.setFkid(dataInfoEntity.getId());
+				dataMove.setVolumePath(node.getName());
+				moveList.add(dataMove);
+			}
+			if (moveList.size() > 0) {
+				dataInfoMoveTmpDao.insertBatch(moveList);
+				isSuccess = true;
+			}
+		}
+		return isSuccess;
+	}
+
+	@Override
+	public List<DataInfoEntityMoveTmp> findAll() throws Exception {
+		List<DataInfoEntityMoveTmp> result = new ArrayList<DataInfoEntityMoveTmp>();
+		try {
+			result = dataInfoMoveTmpDao.findAll();
+
+		} catch (Exception e) {
+			System.err.println(e);
+		}
+		return result;
+	}
+
+	@Override
+	public int delete(DataInfoEntityMoveTmp dataMove) throws Exception {
+		List<DataInfoEntityMoveTmp> list = dataInfoMoveTmpDao.findAll();
+		if (null != list) {
+			for (DataInfoEntityMoveTmp dataInfoEntityMoveTmp : list) {
+				if (dataMove.getId() == dataInfoEntityMoveTmp.getId()) {
+					dataMove = dataInfoEntityMoveTmp;
+					break;
+				}
+			}
+			
+		}
+		if ("3".equals(dataMove.getCompleteStatus())) {
+			removeservice.deleteFolder(dataMove.getDstPath());
+		}
+		int result = 0;
+		if (!"1".equals(dataMove.getCompleteStatus())) {
+			result = dataInfoMoveTmpDao.remove(dataMove.getId());
+		}
+		return result;
+	}
+
+	@Override
+	public int save(DataInfoEntityMoveTmp data) throws Exception {
+		dataInfoMoveTmpDao.save(data);
+		return 0;
+	}
+
+	@Override
+	public int insertBatch(List<DataInfoEntityMoveTmp> list) throws Exception {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public int update(DataInfoEntityMoveTmp data) throws Exception {
+		int result = dataInfoMoveTmpDao.update(data);
+		return result;
+	}
+
+}
diff --git a/src/com/platform/service/impl/MySqlServiceImpl.java b/src/com/platform/service/impl/MySqlServiceImpl.java
index b880b9c0..7efaa3f8 100644
--- a/src/com/platform/service/impl/MySqlServiceImpl.java
+++ b/src/com/platform/service/impl/MySqlServiceImpl.java
@@ -1,56 +1,56 @@
-package com.platform.service.impl;
-
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-
-import com.platform.dao.GatherOracleDao;
-import com.platform.entities.GatherOracleInfo;
-import com.platform.service.IMySqlService;
-
-@Service(value = "mySqlService")
-public class MySqlServiceImpl implements IMySqlService{
-	
-	@Resource(name = "gatherOracleDao")
-	private GatherOracleDao gatherOracleDao;
-
-	@Override
-	public List<GatherOracleInfo> findAllMySql() throws Exception {
-		List<GatherOracleInfo> result = gatherOracleDao.selectAllOracle();
-		return result;
-	}
-
-	@Override
-	public int deleteMySql(int id) throws Exception {
-		
-		int result = 0;
-		if (id > 0) {
-//			result = gatherOracleDao.deleteOracleById(id);
-			GatherOracleInfo oracle = new GatherOracleInfo();
-			oracle.setId(id);
-			oracle.setRemove("1");
-			result = gatherOracleDao.updateOracleById(oracle );
-		}
-		return result;
-	}
-	
-	public int insertOracle(GatherOracleInfo oracle) throws Exception {
-		int result = gatherOracleDao.insertOracle(oracle);
-		return result;
-	}
-
-	@Override
-	public int updateOracle(GatherOracleInfo oracle) throws Exception {
-		int result;
-		if (oracle.getId() > 0) {
-			result = gatherOracleDao.updateOracleById(oracle);
-		}
-		else {
-			result = gatherOracleDao.insertOracle(oracle);
-		}
-		return result;
-	}
-
-}
+package com.platform.service.impl;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.platform.dao.GatherOracleDao;
+import com.platform.entities.GatherOracleInfo;
+import com.platform.service.IMySqlService;
+
+@Service(value = "mySqlService")
+public class MySqlServiceImpl implements IMySqlService{
+	
+	@Resource(name = "gatherOracleDao")
+	private GatherOracleDao gatherOracleDao;
+
+	@Override
+	public List<GatherOracleInfo> findAllMySql() throws Exception {
+		List<GatherOracleInfo> result = gatherOracleDao.selectAllOracle();
+		return result;
+	}
+
+	@Override
+	public int deleteMySql(int id) throws Exception {
+		
+		int result = 0;
+		if (id > 0) {
+//			result = gatherOracleDao.deleteOracleById(id);
+			GatherOracleInfo oracle = new GatherOracleInfo();
+			oracle.setId(id);
+			oracle.setRemove("1");
+			result = gatherOracleDao.updateOracleById(oracle );
+		}
+		return result;
+	}
+	
+	public int insertOracle(GatherOracleInfo oracle) throws Exception {
+		int result = gatherOracleDao.insertOracle(oracle);
+		return result;
+	}
+
+	@Override
+	public int updateOracle(GatherOracleInfo oracle) throws Exception {
+		int result;
+		if (oracle.getId() > 0) {
+			result = gatherOracleDao.updateOracleById(oracle);
+		}
+		else {
+			result = gatherOracleDao.insertOracle(oracle);
+		}
+		return result;
+	}
+
+}
diff --git a/src/com/platform/service/impl/OracleExtractServiceImpl.java b/src/com/platform/service/impl/OracleExtractServiceImpl.java
index 9cf58a00..26c5ba86 100644
--- a/src/com/platform/service/impl/OracleExtractServiceImpl.java
+++ b/src/com/platform/service/impl/OracleExtractServiceImpl.java
@@ -1,94 +1,94 @@
-package com.platform.service.impl;
-
-import java.sql.Connection;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.stereotype.Service;
-
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.GatherOracleInfo;
-import com.platform.entities.OracleConnectorParams;
-import com.platform.oracle.OracleConnector;
-import com.platform.service.IOracleExtractService;
-import com.platform.service.OracleExtractHelper;
-import com.platform.utils.Bean2MapUtils;
-
-@Service(value = "OracleExtract")
-public class OracleExtractServiceImpl implements IOracleExtractService {
-	
-	/**
-	 * 抽取
-	 */
-	private OracleExtractHelper oracleExtract = new OracleExtractHelper(); 
-	
-	/**
-	 * 数据库连接实现类
-	 */
-	private OracleConnector connect = new OracleConnector();
-	
-	@Override
-	public boolean extractOracle(String name, List<Map<String, String>> dataInfoMap,
-			Map<String, String> oracleConnect) throws Exception {
-		boolean isSuccess = false;
-		try{
-			//map转  bean(汇总库信息-带tableName的)
-			GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect);
-			
-			//采集库连接参数
-			List<OracleConnectorParams> datainfos = new ArrayList<OracleConnectorParams>();
-			for (Map<String, String> map : dataInfoMap) {
-				OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect);
-				datainfos.add(dataInfoEntity);
-			}
-			
-			Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + "/"
-					+ oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword());
-			
-			for (OracleConnectorParams collectOracle : datainfos) {
-				
-				oracleExtract.createDBLink(conn, collectOracle);
-				oracleExtract.createTableSpace(conn, oracleModel);
-				oracleExtract.createUser(conn, oracleModel);
-				oracleExtract.extractColleDB(conn, collectOracle);
-			}
-			isSuccess = true;
-		}catch(Exception e){
-			
-		}
-		return false;
-	}
-
-//	@Override
-//	public boolean extractOracle(String name, List<OracleConnectorParams> dataInfos, GatherOracleInfo oracleConnect) throws Exception {
-//		boolean isSuccess = false;
-//		try{
-//			//map转  bean(汇总库信息-带tableName的)
-////			GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect);
-//			
-//			//采集库连接参数
-////			List<OracleConnectorParams> datainfos = new ArrayList<OracleConnectorParams>();
-////			for (Map<String, String> map : dataInfoMap) {
-////				OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect);
-////				datainfos.add(dataInfoEntity);
-////			}
-//			
-//			Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/"
-//					+ oracleConnect.getDatabaseName(), oracleConnect.getUser(), oracleConnect.getPassword());
-//			
-//			for (OracleConnectorParams collectOracle : dataInfos) {
-//				
-//				oracleExtract.createDBLink(conn, collectOracle);
-//				oracleExtract.createTableSpace(conn, oracleConnect);
-//				oracleExtract.createUser(conn, oracleConnect);
-//				oracleExtract.extractColleDB(conn, collectOracle);
-//			}
-//			isSuccess = true;
-//		}catch(Exception e){
-//			
-//		}
-//		return false;
-//	}
-
-}
+package com.platform.service.impl;
+
+import java.sql.Connection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.GatherOracleInfo;
+import com.platform.entities.OracleConnectorParams;
+import com.platform.oracle.OracleConnector;
+import com.platform.service.IOracleExtractService;
+import com.platform.service.OracleExtractHelper;
+import com.platform.utils.Bean2MapUtils;
+
+@Service(value = "OracleExtract")
+public class OracleExtractServiceImpl implements IOracleExtractService {
+	
+	/**
+	 * 抽取
+	 */
+	private OracleExtractHelper oracleExtract = new OracleExtractHelper(); 
+	
+	/**
+	 * 数据库连接实现类
+	 */
+	private OracleConnector connect = new OracleConnector();
+	
+	@Override
+	public boolean extractOracle(String name, List<Map<String, String>> dataInfoMap,
+			Map<String, String> oracleConnect) throws Exception {
+		boolean isSuccess = false;
+		try{
+			//map转  bean(汇总库信息-带tableName的)
+			GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect);
+			
+			//采集库连接参数
+			List<OracleConnectorParams> datainfos = new ArrayList<OracleConnectorParams>();
+			for (Map<String, String> map : dataInfoMap) {
+				OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect);
+				datainfos.add(dataInfoEntity);
+			}
+			
+			Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + "/"
+					+ oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword());
+			
+			for (OracleConnectorParams collectOracle : datainfos) {
+				
+				oracleExtract.createDBLink(conn, collectOracle);
+				oracleExtract.createTableSpace(conn, oracleModel);
+				oracleExtract.createUser(conn, oracleModel);
+				oracleExtract.extractColleDB(conn, collectOracle);
+			}
+			isSuccess = true;
+		}catch(Exception e){
+			
+		}
+		return false;
+	}
+
+//	@Override
+//	public boolean extractOracle(String name, List<OracleConnectorParams> dataInfos, GatherOracleInfo oracleConnect) throws Exception {
+//		boolean isSuccess = false;
+//		try{
+//			//map转  bean(汇总库信息-带tableName的)
+////			GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect);
+//			
+//			//采集库连接参数
+////			List<OracleConnectorParams> datainfos = new ArrayList<OracleConnectorParams>();
+////			for (Map<String, String> map : dataInfoMap) {
+////				OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect);
+////				datainfos.add(dataInfoEntity);
+////			}
+//			
+//			Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/"
+//					+ oracleConnect.getDatabaseName(), oracleConnect.getUser(), oracleConnect.getPassword());
+//			
+//			for (OracleConnectorParams collectOracle : dataInfos) {
+//				
+//				oracleExtract.createDBLink(conn, collectOracle);
+//				oracleExtract.createTableSpace(conn, oracleConnect);
+//				oracleExtract.createUser(conn, oracleConnect);
+//				oracleExtract.extractColleDB(conn, collectOracle);
+//			}
+//			isSuccess = true;
+//		}catch(Exception e){
+//			
+//		}
+//		return false;
+//	}
+
+}
diff --git a/src/com/platform/service/thread/ThreadMoveData.java b/src/com/platform/service/thread/ThreadMoveData.java
index bd36220b..4096107d 100644
--- a/src/com/platform/service/thread/ThreadMoveData.java
+++ b/src/com/platform/service/thread/ThreadMoveData.java
@@ -1,189 +1,189 @@
-package com.platform.service.thread;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.annotation.Resource;
-
-import org.apache.log4j.Logger;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
-
-import com.platform.dao.DataInfoDao;
-import com.platform.dao.DataInfoMoveTmpDao;
-import com.platform.dao.GatherOracleDao;
-import com.platform.entities.DataInfoEntity;
-import com.platform.entities.DataInfoEntityMoveTmp;
-import com.platform.entities.GatherOracleInfo;
-import com.platform.glusterfs.CheckoutMD5;
-import com.platform.glusterfs.CopyData;
-import com.platform.glusterfs.ShowData;
-import com.platform.service.DataInfoService;
-import com.platform.service.DataInfoServiceImp;
-import com.platform.service.IMoveDataService;
-import com.platform.service.impl.MoveDataServiceImpl;
-import com.platform.utils.Bean2MapUtils;
-import com.platform.utils.Constant;
-import com.platform.utils.DateForm;
-
-@Component
-public class ThreadMoveData{
-	
-	public static Logger log = Logger.getLogger(ThreadMoveData.class);
-	
-	@Resource(name = "dataInfoDao")
-	private DataInfoDao dataInfoDao;
-	
-	/**
-	 * 迁移
-	 */
-	CopyData copy = new CopyData();
-	
-	/**
-	 * MD5校验
-	 */
-	CheckoutMD5 check = new CheckoutMD5();
-	
-	@Resource(name = "dataInfoMoveTmpDao")
-	private DataInfoMoveTmpDao dataInfoMoveTmpDao;
-	
-	/**
-	 * 查看数据
-	 */
-	ShowData show = new ShowData();
-	
-	/**
-	 * : 实时更新数据库--根据查询到的 正则迁移的数据
-	 */
-	public ThreadMoveData() {
-	}
-	
-	//5秒
-	@Scheduled(fixedDelay = 5000)
-	public void doSomething() { 
-
-		try {
-			List<DataInfoEntityMoveTmp> result = null;
-			//查询  表  move_data_tmp
-			result = dataInfoMoveTmpDao.findAll();
-			if (null != result) {
-				//gfs  获取size,
-				int rsize = result.size();
-				boolean isNoMove = true;
-				//该循环必须  循环每个,不能有 break;
-				//  rate:大小:假的,待换成真实比例
-				double realRate = 0.00;
-				int moveFileCurrNum = 0;
-				for (int i = 0; i < rsize; i++) {
-					DataInfoEntityMoveTmp dataMove = result.get(i);
-					//如果拷贝进度超过20分钟未进行-- 判断为 迁移失败。
-					// "1" :正在上传,0:等待 迁移, 2:成功 3:失败
-					if ("1".equals(dataMove.getCompleteStatus())) {
-						long nowTime = new Date().getTime();
-						long timelong = nowTime - DateForm.string2DateBysecond(dataMove.getLastTime()).getTime();
-						if (timelong > 1000*60*20) {
-							dataMove.setCompleteStatus("3");
-							dataInfoMoveTmpDao.update(dataMove);
-						}
-						//正在上传的个数。
-						moveFileCurrNum++;
-						if (moveFileCurrNum >= Constant.moveFileMaxNum) {
-							isNoMove = false;
-						}
-						// 查询大小:。//gfs  获取size,
-						long srcSize = show.getFolderSize(dataMove.getDataPath());
-						long dstSize = show.getFolderSize(dataMove.getDstPath());
-						if (srcSize < 0) {
-							log.error(dataMove.getDataPath() + " : 路径不存在! ");
-							continue;
-						}
-						if (dstSize < 0) {
-							log.error(dataMove.getDstPath() + " : 路径不存在! ");
-							continue;
-						}
-						if (srcSize > 0 && dstSize > 0) {
-							realRate = (dstSize*100 / srcSize );
-							dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
-						}
-						if (srcSize == dstSize) {
-							realRate = 100;
-						}
-						dataMove.setRate((int) realRate);
-					}
-					if("1".equals(dataMove.getCompleteStatus()) && dataMove.getRate() > 0){
-						//传输完毕:进行校验
-						if (realRate == 100) {
-							//TODO 进行MD5校验
-							int resl = check.checkoutMD5Folder(dataMove.getDataPath(), dataMove.getDstPath());
-							//TODO 校验成功--则删除数据库记录
-							if(resl == 1){
-								//校验成功--修改 数据库记录--
-								dataMove.setCompleteStatus("2");
-								dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
-								dataInfoMoveTmpDao.update(dataMove);
-								//TODO 新增 一条数据-到-dataInfo
-								DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap(
-										DataInfoEntity.class, Bean2MapUtils.convertBean(dataMove));
-								data.setDataPath(dataMove.getDstPath());
-								data.setVolumeIp(dataMove.getDstVolumeIp());
-								data.setVolumePath(dataMove.getDstVolumePath());
-								data.setYear(DateForm.date2StringByMin(new Date()));
-								dataInfoDao.save(data);
-							}
-							else {
-								// 3:表示 迁移失败
-								dataMove.setCompleteStatus("3");
-							}
-						}
-						dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
-						dataInfoMoveTmpDao.update(dataMove);
-					}
-				}
-				//循环 完了, 确定没有上传的 ,没有正在上传的
-				if (isNoMove) {
-					//查询  表  move_data_tmp
-					result = dataInfoMoveTmpDao.findAll();
-					if (null != result) {
-						
-						int tmpsize = result.size();
-						// 上传下一个后
-						for (int i = 0; i < tmpsize; i++) {
-							DataInfoEntityMoveTmp next2move = result.get(i);
-							//如果是  待 迁移状态的 
-							if ("0".equals(next2move.getCompleteStatus())) {
-								//待迁移的数据 -- 开始迁移
-								// 末尾 含有 /
-								Pattern pattern2 = Pattern.compile("\\/$");
-								String dstPath = next2move.getDataPath();
-								Matcher matcher2 = pattern2.matcher(dstPath);
-								//去掉 最后 的 / 符合
-								if (matcher2.find()) {
-									dstPath = dstPath.substring(0, dstPath.length()-1);
-								}
-								//数据迁移。
-								copy.copyFolder(dstPath+"/app", next2move.getDstPath());
-								// "1" :正在上传,0:等待 迁移, 2:成功 3:失败
-								next2move.setCompleteStatus("1");
-								next2move.setLastTime(DateForm.date2StringBysecond(new Date()));
-								//更新sql
-								dataInfoMoveTmpDao.update(next2move);
-								break;
-							}
-						}
-					}
-				}
-			}
-		
-			Thread.sleep(Constant.update_dataInfo_sleep_time);
-		} catch (Exception e) {
-			System.err.println(e);
-		}
-		
-	}
-
-}
+package com.platform.service.thread;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.annotation.Resource;
+
+import org.apache.log4j.Logger;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import com.platform.dao.DataInfoDao;
+import com.platform.dao.DataInfoMoveTmpDao;
+import com.platform.dao.GatherOracleDao;
+import com.platform.entities.DataInfoEntity;
+import com.platform.entities.DataInfoEntityMoveTmp;
+import com.platform.entities.GatherOracleInfo;
+import com.platform.glusterfs.CheckoutMD5;
+import com.platform.glusterfs.CopyData;
+import com.platform.glusterfs.ShowData;
+import com.platform.service.DataInfoService;
+import com.platform.service.DataInfoServiceImp;
+import com.platform.service.IMoveDataService;
+import com.platform.service.impl.MoveDataServiceImpl;
+import com.platform.utils.Bean2MapUtils;
+import com.platform.utils.Constant;
+import com.platform.utils.DateForm;
+
+@Component
+public class ThreadMoveData{
+	
+	public static Logger log = Logger.getLogger(ThreadMoveData.class);
+	
+	@Resource(name = "dataInfoDao")
+	private DataInfoDao dataInfoDao;
+	
+	/**
+	 * 迁移
+	 */
+	CopyData copy = new CopyData();
+	
+	/**
+	 * MD5校验
+	 */
+	CheckoutMD5 check = new CheckoutMD5();
+	
+	@Resource(name = "dataInfoMoveTmpDao")
+	private DataInfoMoveTmpDao dataInfoMoveTmpDao;
+	
+	/**
+	 * 查看数据
+	 */
+	ShowData show = new ShowData();
+	
+	/**
+	 * : 实时更新数据库--根据查询到的 正则迁移的数据
+	 */
+	public ThreadMoveData() {
+	}
+	
+	//5秒
+	@Scheduled(fixedDelay = 5000)
+	public void doSomething() { 
+
+		try {
+			List<DataInfoEntityMoveTmp> result = null;
+			//查询  表  move_data_tmp
+			result = dataInfoMoveTmpDao.findAll();
+			if (null != result) {
+				//gfs  获取size,
+				int rsize = result.size();
+				boolean isNoMove = true;
+				//该循环必须  循环每个,不能有 break;
+				//  rate:大小:假的,待换成真实比例
+				double realRate = 0.00;
+				int moveFileCurrNum = 0;
+				for (int i = 0; i < rsize; i++) {
+					DataInfoEntityMoveTmp dataMove = result.get(i);
+					//如果拷贝进度超过20分钟未进行-- 判断为 迁移失败。
+					// "1" :正在上传,0:等待 迁移, 2:成功 3:失败
+					if ("1".equals(dataMove.getCompleteStatus())) {
+						long nowTime = new Date().getTime();
+						long timelong = nowTime - DateForm.string2DateBysecond(dataMove.getLastTime()).getTime();
+						if (timelong > 1000*60*20) {
+							dataMove.setCompleteStatus("3");
+							dataInfoMoveTmpDao.update(dataMove);
+						}
+						//正在上传的个数。
+						moveFileCurrNum++;
+						if (moveFileCurrNum >= Constant.moveFileMaxNum) {
+							isNoMove = false;
+						}
+						// 查询大小:。//gfs  获取size,
+						long srcSize = show.getFolderSize(dataMove.getDataPath());
+						long dstSize = show.getFolderSize(dataMove.getDstPath());
+						if (srcSize < 0) {
+							log.error(dataMove.getDataPath() + " : 路径不存在! ");
+							continue;
+						}
+						if (dstSize < 0) {
+							log.error(dataMove.getDstPath() + " : 路径不存在! ");
+							continue;
+						}
+						if (srcSize > 0 && dstSize > 0) {
+							realRate = (dstSize*100 / srcSize );
+							dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
+						}
+						if (srcSize == dstSize) {
+							realRate = 100;
+						}
+						dataMove.setRate((int) realRate);
+					}
+					if("1".equals(dataMove.getCompleteStatus()) && dataMove.getRate() > 0){
+						//传输完毕:进行校验
+						if (realRate == 100) {
+							//TODO 进行MD5校验
+							int resl = check.checkoutMD5Folder(dataMove.getDataPath(), dataMove.getDstPath());
+							//TODO 校验成功--则删除数据库记录
+							if(resl == 1){
+								//校验成功--修改 数据库记录--
+								dataMove.setCompleteStatus("2");
+								dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
+								dataInfoMoveTmpDao.update(dataMove);
+								//TODO 新增 一条数据-到-dataInfo
+								DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap(
+										DataInfoEntity.class, Bean2MapUtils.convertBean(dataMove));
+								data.setDataPath(dataMove.getDstPath());
+								data.setVolumeIp(dataMove.getDstVolumeIp());
+								data.setVolumePath(dataMove.getDstVolumePath());
+								data.setYear(DateForm.date2StringByMin(new Date()));
+								dataInfoDao.save(data);
+							}
+							else {
+								// 3:表示 迁移失败
+								dataMove.setCompleteStatus("3");
+							}
+						}
+						dataMove.setLastTime(DateForm.date2StringBysecond(new Date()));
+						dataInfoMoveTmpDao.update(dataMove);
+					}
+				}
+				//循环 完了, 确定没有上传的 ,没有正在上传的
+				if (isNoMove) {
+					//查询  表  move_data_tmp
+					result = dataInfoMoveTmpDao.findAll();
+					if (null != result) {
+						
+						int tmpsize = result.size();
+						// 上传下一个后
+						for (int i = 0; i < tmpsize; i++) {
+							DataInfoEntityMoveTmp next2move = result.get(i);
+							//如果是  待 迁移状态的 
+							if ("0".equals(next2move.getCompleteStatus())) {
+								//待迁移的数据 -- 开始迁移
+								// 末尾 含有 /
+								Pattern pattern2 = Pattern.compile("\\/$");
+								String dstPath = next2move.getDataPath();
+								Matcher matcher2 = pattern2.matcher(dstPath);
+								//去掉 最后 的 / 符合
+								if (matcher2.find()) {
+									dstPath = dstPath.substring(0, dstPath.length()-1);
+								}
+								//数据迁移。
+								copy.copyFolder(dstPath+"/app", next2move.getDstPath());
+								// "1" :正在上传,0:等待 迁移, 2:成功 3:失败
+								next2move.setCompleteStatus("1");
+								next2move.setLastTime(DateForm.date2StringBysecond(new Date()));
+								//更新sql
+								dataInfoMoveTmpDao.update(next2move);
+								break;
+							}
+						}
+					}
+				}
+			}
+		
+			Thread.sleep(Constant.update_dataInfo_sleep_time);
+		} catch (Exception e) {
+			System.err.println(e);
+		}
+		
+	}
+
+}
diff --git a/src/com/platform/service/thread/TreadMoveData2Start.java b/src/com/platform/service/thread/TreadMoveData2Start.java
index 91f9bb92..0e403186 100644
--- a/src/com/platform/service/thread/TreadMoveData2Start.java
+++ b/src/com/platform/service/thread/TreadMoveData2Start.java
@@ -1,47 +1,47 @@
-package com.platform.service.thread;
-
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-
-import com.platform.dao.DataInfoMoveTmpDao;
-import com.platform.entities.DataInfoEntityMoveTmp;
-import com.platform.service.IMoveDataService;
-import com.platform.service.impl.MoveDataServiceImpl;
-import com.platform.utils.Constant;
-
-public class TreadMoveData2Start extends Thread{
-	
-	
-	private IMoveDataService dataInfoMove= new MoveDataServiceImpl();
-	
-	public TreadMoveData2Start() {
-	}
-	
-	@Override
-	public void run() {
-		boolean isBreak = false;
-		while(true){
-			if (isBreak) {
-				break;
-			}
-			try {
-				List<DataInfoEntityMoveTmp> resultlist = dataInfoMove.findAll();
-				for (DataInfoEntityMoveTmp moveEntity : resultlist) {
-					if ("1".equals(moveEntity.getCompleteStatus())) {
-						moveEntity.setCompleteStatus("3");
-						dataInfoMove.update(moveEntity);
-					}
-				}
-				isBreak = true;
-				Thread.sleep(Constant.update_dataInfo_sleep_time);
-			} catch (Exception e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-	}
-
-}
+package com.platform.service.thread;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.platform.dao.DataInfoMoveTmpDao;
+import com.platform.entities.DataInfoEntityMoveTmp;
+import com.platform.service.IMoveDataService;
+import com.platform.service.impl.MoveDataServiceImpl;
+import com.platform.utils.Constant;
+
+public class TreadMoveData2Start extends Thread{
+	
+	
+	private IMoveDataService dataInfoMove= new MoveDataServiceImpl();
+	
+	public TreadMoveData2Start() {
+	}
+	
+	@Override
+	public void run() {
+		boolean isBreak = false;
+		while(true){
+			if (isBreak) {
+				break;
+			}
+			try {
+				List<DataInfoEntityMoveTmp> resultlist = dataInfoMove.findAll();
+				for (DataInfoEntityMoveTmp moveEntity : resultlist) {
+					if ("1".equals(moveEntity.getCompleteStatus())) {
+						moveEntity.setCompleteStatus("3");
+						dataInfoMove.update(moveEntity);
+					}
+				}
+				isBreak = true;
+				Thread.sleep(Constant.update_dataInfo_sleep_time);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+	}
+
+}
diff --git a/src/com/platform/utils/Bean2MapUtils.java b/src/com/platform/utils/Bean2MapUtils.java
index 7fea556d..fd479317 100644
--- a/src/com/platform/utils/Bean2MapUtils.java
+++ b/src/com/platform/utils/Bean2MapUtils.java
@@ -1,87 +1,87 @@
-package com.platform.utils;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-public class Bean2MapUtils {
-	    
-    /**
-     * 将一个 Map 对象转化为一个 JavaBean
-     * @param type 要转化的类型
-     * @param map 包含属性值的 map
-     * @return 转化出来的 JavaBean 对象
-     * @throws IntrospectionException
-     *             如果分析类属性失败
-     * @throws IllegalAccessException
-     *             如果实例化 JavaBean 失败
-     * @throws InstantiationException
-     *             如果实例化 JavaBean 失败
-     * @throws InvocationTargetException
-     *             如果调用属性的 setter 方法失败
-     */
-    public static Object convertMap(Class type, Map map)
-            throws IntrospectionException, IllegalAccessException,
-            InstantiationException, InvocationTargetException {
-        BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性
-        Object obj = type.newInstance(); // 创建 JavaBean 对象
-
-        // 给 JavaBean 对象的属性赋值
-        PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
-        for (int i = 0; i< propertyDescriptors.length; i++) {
-            PropertyDescriptor descriptor = propertyDescriptors[i];
-            String propertyName = descriptor.getName();
-            try{
-	            if (map.containsKey(propertyName)) {
-	                // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。
-	                Object value = map.get(propertyName);
-
-	                Object[] args = new Object[1];
-	                args[0] = value;
-
-	                descriptor.getWriteMethod().invoke(obj, args);
-	            }
-            }
-            catch(Exception e){
-            	
-            }
-        }
-        return obj;
-    }
-
-    /**
-     * 将一个 JavaBean 对象转化为一个  Map
-     * @param bean 要转化的JavaBean 对象
-     * @return 转化出来的  Map 对象
-     * @throws IntrospectionException 如果分析类属性失败
-     * @throws IllegalAccessException 如果实例化 JavaBean 失败
-     * @throws InvocationTargetException 如果调用属性的 setter 方法失败
-     */
-    public static Map convertBean(Object bean)
-            throws IntrospectionException, IllegalAccessException, InvocationTargetException {
-        Class type = bean.getClass();
-        Map returnMap = new HashMap();
-        BeanInfo beanInfo = Introspector.getBeanInfo(type);
-
-        PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
-        for (int i = 0; i< propertyDescriptors.length; i++) {
-            PropertyDescriptor descriptor = propertyDescriptors[i];
-            String propertyName = descriptor.getName();
-            if (!propertyName.equals("class")) {
-                Method readMethod = descriptor.getReadMethod();
-                Object result = readMethod.invoke(bean, new Object[0]);
-                if (result != null) {
-                    returnMap.put(propertyName, result);
-                } else {
-                    returnMap.put(propertyName, "");
-                }
-            }
-        }
-        return returnMap;
-    }
-}
+package com.platform.utils;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+public class Bean2MapUtils {
+	    
+    /**
+     * 将一个 Map 对象转化为一个 JavaBean
+     * @param type 要转化的类型
+     * @param map 包含属性值的 map
+     * @return 转化出来的 JavaBean 对象
+     * @throws IntrospectionException
+     *             如果分析类属性失败
+     * @throws IllegalAccessException
+     *             如果实例化 JavaBean 失败
+     * @throws InstantiationException
+     *             如果实例化 JavaBean 失败
+     * @throws InvocationTargetException
+     *             如果调用属性的 setter 方法失败
+     */
+    public static Object convertMap(Class type, Map map)
+            throws IntrospectionException, IllegalAccessException,
+            InstantiationException, InvocationTargetException {
+        BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性
+        Object obj = type.newInstance(); // 创建 JavaBean 对象
+
+        // 给 JavaBean 对象的属性赋值
+        PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
+        for (int i = 0; i< propertyDescriptors.length; i++) {
+            PropertyDescriptor descriptor = propertyDescriptors[i];
+            String propertyName = descriptor.getName();
+            try{
+	            if (map.containsKey(propertyName)) {
+	                // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。
+	                Object value = map.get(propertyName);
+
+	                Object[] args = new Object[1];
+	                args[0] = value;
+
+	                descriptor.getWriteMethod().invoke(obj, args);
+	            }
+            }
+            catch(Exception e){
+            	
+            }
+        }
+        return obj;
+    }
+
+    /**
+     * 将一个 JavaBean 对象转化为一个  Map
+     * @param bean 要转化的JavaBean 对象
+     * @return 转化出来的  Map 对象
+     * @throws IntrospectionException 如果分析类属性失败
+     * @throws IllegalAccessException 如果实例化 JavaBean 失败
+     * @throws InvocationTargetException 如果调用属性的 setter 方法失败
+     */
+    public static Map convertBean(Object bean)
+            throws IntrospectionException, IllegalAccessException, InvocationTargetException {
+        Class type = bean.getClass();
+        Map returnMap = new HashMap();
+        BeanInfo beanInfo = Introspector.getBeanInfo(type);
+
+        PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
+        for (int i = 0; i< propertyDescriptors.length; i++) {
+            PropertyDescriptor descriptor = propertyDescriptors[i];
+            String propertyName = descriptor.getName();
+            if (!propertyName.equals("class")) {
+                Method readMethod = descriptor.getReadMethod();
+                Object result = readMethod.invoke(bean, new Object[0]);
+                if (result != null) {
+                    returnMap.put(propertyName, result);
+                } else {
+                    returnMap.put(propertyName, "");
+                }
+            }
+        }
+        return returnMap;
+    }
+}
diff --git a/src/com/platform/utils/CacheTreeData.java b/src/com/platform/utils/CacheTreeData.java
index 6d6caa1b..742df9a2 100644
--- a/src/com/platform/utils/CacheTreeData.java
+++ b/src/com/platform/utils/CacheTreeData.java
@@ -1,39 +1,39 @@
-package com.platform.utils;
-
-import java.util.List;
-import java.util.Map;
-
-import com.platform.entities.FolderNode;
-import com.platform.entities.VolumeEntity;
-
-public class CacheTreeData {
-	
-	private static List<FolderNode> folders = null;
-	
-	private static List<VolumeEntity> volumeList = null;
-
-	public static List<FolderNode> getFolders() {
-		return folders;
-	}
-
-	public static void setFolders(List<FolderNode> folders) {
-		CacheTreeData.folders = folders;
-	}
-
-	/**
-	 * @return the volumeList
-	 */
-	public static List<VolumeEntity> getVolumeList() {
-		return volumeList;
-	}
-
-	/**
-	 * @param volumeList the volumeList to set
-	 */
-	public static void setVolumeList(List<VolumeEntity> volumeList) {
-		CacheTreeData.volumeList = volumeList;
-	}
-	
-}
-
-
+package com.platform.utils;
+
+import java.util.List;
+import java.util.Map;
+
+import com.platform.entities.FolderNode;
+import com.platform.entities.VolumeEntity;
+
+public class CacheTreeData {
+	
+	private static List<FolderNode> folders = null;
+	
+	private static List<VolumeEntity> volumeList = null;
+
+	public static List<FolderNode> getFolders() {
+		return folders;
+	}
+
+	public static void setFolders(List<FolderNode> folders) {
+		CacheTreeData.folders = folders;
+	}
+
+	/**
+	 * @return the volumeList
+	 */
+	public static List<VolumeEntity> getVolumeList() {
+		return volumeList;
+	}
+
+	/**
+	 * @param volumeList the volumeList to set
+	 */
+	public static void setVolumeList(List<VolumeEntity> volumeList) {
+		CacheTreeData.volumeList = volumeList;
+	}
+	
+}
+
+
diff --git a/src/com/platform/utils/ConfigLoder.java b/src/com/platform/utils/ConfigLoder.java
index ce3b30a0..3d1e470a 100644
--- a/src/com/platform/utils/ConfigLoder.java
+++ b/src/com/platform/utils/ConfigLoder.java
@@ -1,84 +1,84 @@
-package com.platform.utils;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.apache.commons.lang.StringUtils;
-
-public class ConfigLoder {
-	private String configPath;
-	private volatile static ConfigLoder configLoder;
-
-	private ConfigLoder(String configPath) {
-		this.configPath = configPath;
-	}
-
-	public static ConfigLoder Builder(String configPtah) {
-		if (null == configLoder) {
-			synchronized (ConfigLoder.class) {
-				if (null == configLoder)
-					configLoder = new ConfigLoder(configPtah);
-			}
-		}
-		return configLoder;
-	}
-
-	/**
-	 * 读取文Property中的属性值
-	 * 
-	 * @param key
-	 * @return
-	 */
-	public String getProperty(String key) {
-		String value = null;
-		if (StringUtils.isEmpty(key))
-			return value;
-
-		try {
-			InputStream is = new BufferedInputStream(new FileInputStream(
-					new File(configPath)));
-			Properties properties = new Properties();
-			properties.load(is);
-			value = properties.getProperty(key);
-		} catch (FileNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return value;
-	}
-
-	public Properties getProperties() {
-		Properties properties = null;
-		try {
-			InputStream is;
-			properties = new Properties();
-			is = new BufferedInputStream(new FileInputStream(new File(
-					configPath)));
-			properties.load(is);
-		} catch (FileNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return properties;
-	}
-
-	public String getConfigPath() {
-		return configPath;
-	}
-
-	public void setConfigPath(String configPath) {
-		this.configPath = configPath;
-	}
-
-}
+package com.platform.utils;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.commons.lang.StringUtils;
+
+public class ConfigLoder {
+	private String configPath;
+	private volatile static ConfigLoder configLoder;
+
+	private ConfigLoder(String configPath) {
+		this.configPath = configPath;
+	}
+
+	public static ConfigLoder Builder(String configPtah) {
+		if (null == configLoder) {
+			synchronized (ConfigLoder.class) {
+				if (null == configLoder)
+					configLoder = new ConfigLoder(configPtah);
+			}
+		}
+		return configLoder;
+	}
+
+	/**
+	 * 读取文Property中的属性值
+	 * 
+	 * @param key
+	 * @return
+	 */
+	public String getProperty(String key) {
+		String value = null;
+		if (StringUtils.isEmpty(key))
+			return value;
+
+		try {
+			InputStream is = new BufferedInputStream(new FileInputStream(
+					new File(configPath)));
+			Properties properties = new Properties();
+			properties.load(is);
+			value = properties.getProperty(key);
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return value;
+	}
+
+	public Properties getProperties() {
+		Properties properties = null;
+		try {
+			InputStream is;
+			properties = new Properties();
+			is = new BufferedInputStream(new FileInputStream(new File(
+					configPath)));
+			properties.load(is);
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return properties;
+	}
+
+	public String getConfigPath() {
+		return configPath;
+	}
+
+	public void setConfigPath(String configPath) {
+		this.configPath = configPath;
+	}
+
+}
diff --git a/src/com/platform/utils/ConfigPropertyReader.java b/src/com/platform/utils/ConfigPropertyReader.java
index d2a3bd9b..880a9c34 100644
--- a/src/com/platform/utils/ConfigPropertyReader.java
+++ b/src/com/platform/utils/ConfigPropertyReader.java
@@ -1,84 +1,84 @@
-package com.platform.utils;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.apache.commons.lang.StringUtils;
-
-public class ConfigPropertyReader {
-	private String configPath;
-	private volatile static ConfigPropertyReader configLoder;
-
-	private ConfigPropertyReader(String configPath) {
-		this.configPath = configPath;
-	}
-
-	public static ConfigPropertyReader Builder(String configPtah) {
-		if (null == configLoder) {
-			synchronized (ConfigPropertyReader.class) {
-				if (null == configLoder)
-					configLoder = new ConfigPropertyReader(configPtah);
-			}
-		}
-		return configLoder;
-	}
-
-	/**
-	 * 读取文Property中的属性值
-	 * 
-	 * @param key
-	 * @return
-	 */
-	public synchronized String getProperty(String key) {
-		String value = null;
-		if (StringUtils.isEmpty(key))
-			return value;
-
-		try {
-			InputStream is = new BufferedInputStream(new FileInputStream(
-					new File(configPath)));
-			Properties properties = new Properties();
-			properties.load(is);
-			value = properties.getProperty(key);
-		} catch (FileNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return value;
-	}
-
-	public Properties getProperties() {
-		Properties properties = null;
-		try {
-			InputStream is;
-			properties = new Properties();
-			is = new BufferedInputStream(new FileInputStream(new File(
-					configPath)));
-			properties.load(is);
-		} catch (FileNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return properties;
-	}
-
-	public String getConfigPath() {
-		return configPath;
-	}
-
-	public void setConfigPath(String configPath) {
-		this.configPath = configPath;
-	}
-
-}
+package com.platform.utils;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.commons.lang.StringUtils;
+
+public class ConfigPropertyReader {
+	private String configPath;
+	private volatile static ConfigPropertyReader configLoder;
+
+	private ConfigPropertyReader(String configPath) {
+		this.configPath = configPath;
+	}
+
+	public static ConfigPropertyReader Builder(String configPtah) {
+		if (null == configLoder) {
+			synchronized (ConfigPropertyReader.class) {
+				if (null == configLoder)
+					configLoder = new ConfigPropertyReader(configPtah);
+			}
+		}
+		return configLoder;
+	}
+
+	/**
+	 * 读取文Property中的属性值
+	 * 
+	 * @param key
+	 * @return
+	 */
+	public synchronized String getProperty(String key) {
+		String value = null;
+		if (StringUtils.isEmpty(key))
+			return value;
+
+		try {
+			InputStream is = new BufferedInputStream(new FileInputStream(
+					new File(configPath)));
+			Properties properties = new Properties();
+			properties.load(is);
+			value = properties.getProperty(key);
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return value;
+	}
+
+	public Properties getProperties() {
+		Properties properties = null;
+		try {
+			InputStream is;
+			properties = new Properties();
+			is = new BufferedInputStream(new FileInputStream(new File(
+					configPath)));
+			properties.load(is);
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return properties;
+	}
+
+	public String getConfigPath() {
+		return configPath;
+	}
+
+	public void setConfigPath(String configPath) {
+		this.configPath = configPath;
+	}
+
+}
diff --git a/src/com/platform/utils/Configs.java b/src/com/platform/utils/Configs.java
index bb2afede..2160662d 100644
--- a/src/com/platform/utils/Configs.java
+++ b/src/com/platform/utils/Configs.java
@@ -1,52 +1,52 @@
-package com.platform.utils;
-
-import org.apache.log4j.Logger;
-
-public class Configs {
-	
-	/** 全局自定义异常--编码  */
-	public static final String GLOBAL_EXP_CUSTOM = "3001001001";
-	
-	/** 全局非自定义异常--编码  */
-	public static final String GLOBAL_EXP_NOT_CUSTOM = "3001001002";
-	
-	public static final String CONFIG_LOCALTION = "WebContent/WEB-INF/config/config.properties";
-
-	public static final Logger CONSOLE_LOGGER = Logger.getLogger("console");
-
-	public static final Logger DAILY_ROLLING_LOGGER = Logger
-			.getLogger("dailyRollingFile");
-
-	public static final Logger DAILY_LOGGER = Logger.getLogger("railyFile");
-
-	public static final Logger LOGGER = Logger.getLogger(Configs.class);
-
-	public static String KUBE_MASTER_URL = "http://192.168.0.113:8080/"; // kubernetes集群的maser
-																			// URl
-
-	public static int ORACLE_DEFAULT_PORT = 1521; // oracle的默认端口号
-
-	public static String COLLECT_USER_NAME = "system"; //采集统一的登入用户名
-
-	public static String COLLECT_PASSWORD = "oracle"; //采集统一的登入密码
-
-	public static String COLLECT_SERVICE_NAME = "orcl"; //采集库统一的服务名
-	
-	public static String GATHER_PORT ="1521"; //汇总库的端口号
-	
-	public static String GATHER_USER_NAME = "system"; //汇总库的登入用户名
-	
-	public static String GATHER_USER_PASSWORD = "1"; //汇总库的登入密码
-	
-	public static String GATHER_SERVICE_NAME = "orcl"; //汇总库的服务名
-	
-	public static String TABLE_SUFFIX = "_20152016";  //汇总库汇总表的后缀名	
-	
-	public static String EXTRACT_LOG_LOCALTION = "/home/log"; //数据汇总日志保存位置
-	
-	public static String GATHER_TABLESPACE_NAME=""; //表空间名
-	
-	public static String GATHER_TABLESPACE_PATH=""; //表空间路径
-	
-	public static String GATHER_TABLE_PASSWORD=""; //登入密码
-}
+package com.platform.utils;
+
+import org.apache.log4j.Logger;
+
+public class Configs {
+	
+	/** 全局自定义异常--编码  */
+	public static final String GLOBAL_EXP_CUSTOM = "3001001001";
+	
+	/** 全局非自定义异常--编码  */
+	public static final String GLOBAL_EXP_NOT_CUSTOM = "3001001002";
+	
+	public static final String CONFIG_LOCALTION = "WebContent/WEB-INF/config/config.properties";
+
+	public static final Logger CONSOLE_LOGGER = Logger.getLogger("console");
+
+	public static final Logger DAILY_ROLLING_LOGGER = Logger
+			.getLogger("dailyRollingFile");
+
+	public static final Logger DAILY_LOGGER = Logger.getLogger("railyFile");
+
+	public static final Logger LOGGER = Logger.getLogger(Configs.class);
+
+	public static String KUBE_MASTER_URL = "http://192.168.0.113:8080/"; // kubernetes集群的maser
+																			// URl
+
+	public static int ORACLE_DEFAULT_PORT = 1521; // oracle的默认端口号
+
+	public static String COLLECT_USER_NAME = "system"; //采集统一的登入用户名
+
+	public static String COLLECT_PASSWORD = "oracle"; //采集统一的登入密码
+
+	public static String COLLECT_SERVICE_NAME = "orcl"; //采集库统一的服务名
+	
+	public static String GATHER_PORT ="1521"; //汇总库的端口号
+	
+	public static String GATHER_USER_NAME = "system"; //汇总库的登入用户名
+	
+	public static String GATHER_USER_PASSWORD = "1"; //汇总库的登入密码
+	
+	public static String GATHER_SERVICE_NAME = "orcl"; //汇总库的服务名
+	
+	public static String TABLE_SUFFIX = "_20152016";  //汇总库汇总表的后缀名	
+	
+	public static String EXTRACT_LOG_LOCALTION = "/home/log"; //数据汇总日志保存位置
+	
+	public static String GATHER_TABLESPACE_NAME=""; //表空间名
+	
+	public static String GATHER_TABLESPACE_PATH=""; //表空间路径
+	
+	public static String GATHER_TABLE_PASSWORD=""; //登入密码
+}
diff --git a/src/com/platform/utils/ConfigsLoader.java b/src/com/platform/utils/ConfigsLoader.java
index 85d75e69..56745ce0 100644
--- a/src/com/platform/utils/ConfigsLoader.java
+++ b/src/com/platform/utils/ConfigsLoader.java
@@ -1,74 +1,74 @@
-package com.platform.utils;
-
-import java.util.Properties;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-public class ConfigsLoader implements ServletContextListener {
-	private static ConfigPropertyReader cReader = null;
-
-	@Override
-	public void contextDestroyed(ServletContextEvent sEvent) {
-		// TODO Auto-generated method stub
-		Configs.CONSOLE_LOGGER.info("系统停止..");
-	}
-
-	@SuppressWarnings("static-access")
-	@Override
-	public void contextInitialized(ServletContextEvent sEvent) {
-		// TODO Auto-generated method stub
-		Configs.CONSOLE_LOGGER.info("系统初始化..");
-		String contextPath = sEvent.getServletContext().getRealPath("/")
-				+ "WEB-INF/config/config.properties";
-		this.cReader = ConfigPropertyReader.Builder(contextPath);
-		init();
-		new ThreadVolume("").start();
-	}
-
-	public static void init() {
-		Properties properties = cReader.getProperties();
-
-		Configs.KUBE_MASTER_URL = properties.getProperty("kubeMasterUrl");
-
-		Configs.COLLECT_USER_NAME = properties.getProperty("collect-user-name");
-
-		Configs.COLLECT_PASSWORD = properties.getProperty("collect-password");
-
-		Configs.COLLECT_SERVICE_NAME = properties
-				.getProperty("collect-service-name");
-
-		Configs.GATHER_USER_NAME = properties.getProperty("gather-user-name");
-
-		Configs.GATHER_USER_PASSWORD = properties
-				.getProperty("gather-user-password");
-
-		Configs.GATHER_PORT = properties.getProperty("gather-port");
-
-		Configs.GATHER_SERVICE_NAME = properties
-				.getProperty("gather-service-name");
-
-		Configs.TABLE_SUFFIX = properties.getProperty("table-suffix");
-
-		Configs.EXTRACT_LOG_LOCALTION = properties
-				.getProperty("extract-log-localtion");
-
-		Configs.GATHER_TABLESPACE_NAME = properties
-				.getProperty("gather-tablespace-name");
-
-		Configs.GATHER_TABLESPACE_PATH = properties
-				.getProperty("gather-tablespace-path");
-		
-		Configs.GATHER_TABLE_PASSWORD=properties.getProperty("gather-table-user-password");
-	}
-
-	public ConfigPropertyReader getcReader() {
-		return cReader;
-	}
-
-	@SuppressWarnings("static-access")
-	public void setcReader(ConfigPropertyReader cReader) {
-		this.cReader = cReader;
-	}
-
-}
+package com.platform.utils;
+
+import java.util.Properties;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+public class ConfigsLoader implements ServletContextListener {
+	private static ConfigPropertyReader cReader = null;
+
+	@Override
+	public void contextDestroyed(ServletContextEvent sEvent) {
+		// TODO Auto-generated method stub
+		Configs.CONSOLE_LOGGER.info("系统停止..");
+	}
+
+	@SuppressWarnings("static-access")
+	@Override
+	public void contextInitialized(ServletContextEvent sEvent) {
+		// TODO Auto-generated method stub
+		Configs.CONSOLE_LOGGER.info("系统初始化..");
+		String contextPath = sEvent.getServletContext().getRealPath("/")
+				+ "WEB-INF/config/config.properties";
+		this.cReader = ConfigPropertyReader.Builder(contextPath);
+		init();
+		new ThreadVolume("").start();
+	}
+
+	public static void init() {
+		Properties properties = cReader.getProperties();
+
+		Configs.KUBE_MASTER_URL = properties.getProperty("kubeMasterUrl");
+
+		Configs.COLLECT_USER_NAME = properties.getProperty("collect-user-name");
+
+		Configs.COLLECT_PASSWORD = properties.getProperty("collect-password");
+
+		Configs.COLLECT_SERVICE_NAME = properties
+				.getProperty("collect-service-name");
+
+		Configs.GATHER_USER_NAME = properties.getProperty("gather-user-name");
+
+		Configs.GATHER_USER_PASSWORD = properties
+				.getProperty("gather-user-password");
+
+		Configs.GATHER_PORT = properties.getProperty("gather-port");
+
+		Configs.GATHER_SERVICE_NAME = properties
+				.getProperty("gather-service-name");
+
+		Configs.TABLE_SUFFIX = properties.getProperty("table-suffix");
+
+		Configs.EXTRACT_LOG_LOCALTION = properties
+				.getProperty("extract-log-localtion");
+
+		Configs.GATHER_TABLESPACE_NAME = properties
+				.getProperty("gather-tablespace-name");
+
+		Configs.GATHER_TABLESPACE_PATH = properties
+				.getProperty("gather-tablespace-path");
+		
+		Configs.GATHER_TABLE_PASSWORD=properties.getProperty("gather-table-user-password");
+	}
+
+	public ConfigPropertyReader getcReader() {
+		return cReader;
+	}
+
+	@SuppressWarnings("static-access")
+	public void setcReader(ConfigPropertyReader cReader) {
+		this.cReader = cReader;
+	}
+
+}
diff --git a/src/com/platform/utils/Constant.java b/src/com/platform/utils/Constant.java
index 68b559f5..e3005ea0 100644
--- a/src/com/platform/utils/Constant.java
+++ b/src/com/platform/utils/Constant.java
@@ -1,49 +1,49 @@
-
-package com.platform.utils;
-
-
-public class Constant {
-	public static String rootUser = "root";
-	public static String rootPasswd = "root";
-	public static String hostIp = "192.168.0.116";
-	// public static String hostIp = "192.168.1.105";
-	public static int port = 22;
-	public static String glusterPeerStatus = "gluster peer status";
-	public static String glusterVolumeInfo = "gluster volume info ";
-	public static String df = "df -k ";
-	public static String peerincluster_connected = "PeerinCluster(Connected)";
-	public static String peerincluster_disconnected = "PeerinCluster(Disconnected)";
-	public static String peerNotinCluster = "PeerNotinCluster";
-	public static String distributed = "distributed";
-	public static String replica = "replica";
-	public static String stripe = "stripe";
-	public static String noVolume = "No volumes present";
-	public static String success = "success";
-	public static String failed = "failed";
-	public static String noSuchFile = "No such file or directory";
-	public static GanymedSSH ganymedSSH = new GanymedSSH(hostIp, rootUser, rootPasswd, port);
-	public static String fileGetTreeData = "WebContent\\WEB-INF\\config\\getTreedata.sh";
-	public static String AutoMountfile="/gfsAutoMount/AutoRun.sh";
-	public static String MountRecord="/gfsAutoMount/mountPoint.record";
-	public static String strGetTreeData = "function ergodic(){\n  "
-			+ "for file in \\`ls \\$1\\`\n  do\n    if [ \"\\$file\" != \"app\" -a -d \\$1\\\"/\\\"\\$file  ]\n    "
-			+ "then\n      ergodic \\$1\"/\"\\$file\n    else\n      local path=\\$1\"/\"\\$file\n      "
-			+ "echo \\$path \n    fi\n  done\n}\n\nIFS=\\$\\'\\n\\'                      "
-			+ "#这个必须要,否则会在文件名中有空格时出错\nINIT_PATH=\".\";\nergodic \\$1\n";
-
-	/**
-	 * volume 获取的线程休眠时间
-	 */
-	public final static int moveFileMaxNum = 1;
-
-		/**
-		 * volume 获取的线程休眠时间
-		 */
-		public final static int get_volume_sleep_time = 180000;
-		
-		/**
-		 * volume 获取的线程休眠时间
-		 */
-		public final static int update_dataInfo_sleep_time = 30000;
-
-}
+
+package com.platform.utils;
+
+
+public class Constant {
+	public static String rootUser = "root";
+	public static String rootPasswd = "root";
+	public static String hostIp = "192.168.0.110";
+	// public static String hostIp = "192.168.1.105";
+	public static int port = 22;
+	public static String glusterPeerStatus = "gluster peer status";
+	public static String glusterVolumeInfo = "gluster volume info ";
+	public static String df = "df -k ";
+	public static String peerincluster_connected = "PeerinCluster(Connected)";
+	public static String peerincluster_disconnected = "PeerinCluster(Disconnected)";
+	public static String peerNotinCluster = "PeerNotinCluster";
+	public static String distributed = "distributed";
+	public static String replica = "replica";
+	public static String stripe = "stripe";
+	public static String noVolume = "No volumes present";
+	public static String success = "success";
+	public static String failed = "failed";
+	public static String noSuchFile = "No such file or directory";
+	public static GanymedSSH ganymedSSH = new GanymedSSH(hostIp, rootUser, rootPasswd, port);
+	public static String fileGetTreeData = "WebContent\\WEB-INF\\config\\getTreedata.sh";
+	public static String AutoMountfile="/gfsAutoMount/AutoRun.sh";
+	public static String MountRecord="/gfsAutoMount/mountPoint.record";
+	public static String strGetTreeData = "function ergodic(){\n  "
+			+ "for file in \\`ls \\$1\\`\n  do\n    if [ \"\\$file\" != \"app\" -a -d \\$1\\\"/\\\"\\$file  ]\n    "
+			+ "then\n      ergodic \\$1\"/\"\\$file\n    else\n      local path=\\$1\"/\"\\$file\n      "
+			+ "echo \\$path \n    fi\n  done\n}\n\nIFS=\\$\\'\\n\\'                      "
+			+ "#这个必须要,否则会在文件名中有空格时出错\nINIT_PATH=\".\";\nergodic \\$1\n";
+
+	/**
+	 * volume 获取的线程休眠时间
+	 */
+	public final static int moveFileMaxNum = 1;
+
+		/**
+		 * volume 获取的线程休眠时间
+		 */
+		public final static int get_volume_sleep_time = 600000;
+		
+		/**
+		 * volume 获取的线程休眠时间
+		 */
+		public final static int update_dataInfo_sleep_time = 30000;
+
+}
diff --git a/src/com/platform/utils/DateForm.java b/src/com/platform/utils/DateForm.java
index c6531466..db66520f 100644
--- a/src/com/platform/utils/DateForm.java
+++ b/src/com/platform/utils/DateForm.java
@@ -1,137 +1,137 @@
-package com.platform.utils;
-
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-public class DateForm {
-	
-	private static final String date_format_second = "yyyy-MM-dd HH:mm:ss";
-	
-	private static final String date_format_second_non = "yyyy-MM-dd_HH-mm-ss";
-	
-	private static final String data_format_min = "yyyy-MM-dd HH:mm";
-	
-	private static final String data_format_day = "yyyy-MM-dd";
-	
-    private static ThreadLocal<DateFormat> threadLocal_second = new ThreadLocal<DateFormat>();
-    
-    private static ThreadLocal<DateFormat> threadLocal_second_non = new ThreadLocal<DateFormat>();
-    
-    private static ThreadLocal<DateFormat> threadLocal_min = new ThreadLocal<DateFormat>();
-    
-    private static ThreadLocal<DateFormat> threadLocal_day = new ThreadLocal<DateFormat>();
- 
-	public static String date2StringBysecond(Date date) {
-		if (date == null) {
-			return null;
-		}
-		DateFormat format = threadLocal_second.get();
-		if(format == null){  
-			format = new SimpleDateFormat(date_format_second);  
-			threadLocal_second.set(format);  
-        }
-		return format.format(date);
-	}
-	
-	public static String date2StringBysecondNon(Date date) {
-		if (date == null) {
-			return null;
-		}
-		DateFormat format = threadLocal_second_non.get();
-		if(format == null){  
-			format = new SimpleDateFormat(date_format_second_non);  
-			threadLocal_second_non.set(format);  
-        }
-		return format.format(date);
-	}
-	
-	public static String date2StringByMin(Date date) {
-		if (date == null) {
-			return null;
-		}
-		DateFormat format = threadLocal_min.get();
-		if(format == null){  
-			format = new SimpleDateFormat(data_format_min);  
-			threadLocal_min.set(format);  
-        }
-		return format.format(date);
-	}
-	
-	public static String date2StringByDay(Date date) {
-		if (date == null) {
-			return null;
-		}
-		DateFormat format = threadLocal_day.get();
-		if(format == null){  
-			format = new SimpleDateFormat(data_format_day);  
-			threadLocal_day.set(format);  
-        }
-		return format.format(date);
-	}
-	
-	public static Date string2DateBysecond(String date) {
-		if (date == null) {
-			return null;
-		}
-		date = date.trim();
-		if (date.isEmpty()) {
-			return null;
-		}
-		DateFormat format = threadLocal_second.get();
-		try {
-			if(format == null){  
-				format = new SimpleDateFormat(date_format_second);
-				threadLocal_second.set(format);  
-			}
-			return format.parse(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-	
-	public static Date string2DateByMin(String date) {
-		if (date == null) {
-			return null;
-		}
-		date = date.trim();
-		if (date.isEmpty()) {
-			return null;
-		}
-		DateFormat format = threadLocal_min.get();
-		try {
-			if(format == null){  
-				format = new SimpleDateFormat(data_format_min);
-				threadLocal_min.set(format);  
-			}
-			return format.parse(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-	
-	public static Date string2DateByDay(String date) {
-		if (date == null) {
-			return null;
-		}
-		date = date.trim();
-		if (date.isEmpty()) {
-			return null;
-		}
-		DateFormat format = threadLocal_day.get();
-		try {
-			if(format == null){  
-				format = new SimpleDateFormat(data_format_day);
-				threadLocal_day.set(format);  
-			}
-			return format.parse(date);
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-	
-}
+package com.platform.utils;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class DateForm {
+	
+	private static final String date_format_second = "yyyy-MM-dd HH:mm:ss";
+	
+	private static final String date_format_second_non = "yyyy-MM-dd_HH-mm-ss";
+	
+	private static final String data_format_min = "yyyy-MM-dd HH:mm";
+	
+	private static final String data_format_day = "yyyy-MM-dd";
+	
+    private static ThreadLocal<DateFormat> threadLocal_second = new ThreadLocal<DateFormat>();
+    
+    private static ThreadLocal<DateFormat> threadLocal_second_non = new ThreadLocal<DateFormat>();
+    
+    private static ThreadLocal<DateFormat> threadLocal_min = new ThreadLocal<DateFormat>();
+    
+    private static ThreadLocal<DateFormat> threadLocal_day = new ThreadLocal<DateFormat>();
+ 
+	public static String date2StringBysecond(Date date) {
+		if (date == null) {
+			return null;
+		}
+		DateFormat format = threadLocal_second.get();
+		if(format == null){  
+			format = new SimpleDateFormat(date_format_second);  
+			threadLocal_second.set(format);  
+        }
+		return format.format(date);
+	}
+	
+	public static String date2StringBysecondNon(Date date) {
+		if (date == null) {
+			return null;
+		}
+		DateFormat format = threadLocal_second_non.get();
+		if(format == null){  
+			format = new SimpleDateFormat(date_format_second_non);  
+			threadLocal_second_non.set(format);  
+        }
+		return format.format(date);
+	}
+	
+	public static String date2StringByMin(Date date) {
+		if (date == null) {
+			return null;
+		}
+		DateFormat format = threadLocal_min.get();
+		if(format == null){  
+			format = new SimpleDateFormat(data_format_min);  
+			threadLocal_min.set(format);  
+        }
+		return format.format(date);
+	}
+	
+	public static String date2StringByDay(Date date) {
+		if (date == null) {
+			return null;
+		}
+		DateFormat format = threadLocal_day.get();
+		if(format == null){  
+			format = new SimpleDateFormat(data_format_day);  
+			threadLocal_day.set(format);  
+        }
+		return format.format(date);
+	}
+	
+	public static Date string2DateBysecond(String date) {
+		if (date == null) {
+			return null;
+		}
+		date = date.trim();
+		if (date.isEmpty()) {
+			return null;
+		}
+		DateFormat format = threadLocal_second.get();
+		try {
+			if(format == null){  
+				format = new SimpleDateFormat(date_format_second);
+				threadLocal_second.set(format);  
+			}
+			return format.parse(date);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
+	public static Date string2DateByMin(String date) {
+		if (date == null) {
+			return null;
+		}
+		date = date.trim();
+		if (date.isEmpty()) {
+			return null;
+		}
+		DateFormat format = threadLocal_min.get();
+		try {
+			if(format == null){  
+				format = new SimpleDateFormat(data_format_min);
+				threadLocal_min.set(format);  
+			}
+			return format.parse(date);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
+	public static Date string2DateByDay(String date) {
+		if (date == null) {
+			return null;
+		}
+		date = date.trim();
+		if (date.isEmpty()) {
+			return null;
+		}
+		DateFormat format = threadLocal_day.get();
+		try {
+			if(format == null){  
+				format = new SimpleDateFormat(data_format_day);
+				threadLocal_day.set(format);  
+			}
+			return format.parse(date);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
+}
diff --git a/src/com/platform/utils/DateHandle.java b/src/com/platform/utils/DateHandle.java
index 90ebb9d7..ca51e11d 100644
--- a/src/com/platform/utils/DateHandle.java
+++ b/src/com/platform/utils/DateHandle.java
@@ -1,9 +1,9 @@
-package com.platform.utils;
-import java.util.Date;
-import java.text.SimpleDateFormat;
-public class DateHandle {
-public static String getNow() {
-	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
-	return df.format(new Date());// new Date()为获取当前系统时�?
-}
-}
+package com.platform.utils;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+public class DateHandle {
+public static String getNow() {
+	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
+	return df.format(new Date());// new Date()为获取当前系统时�?
+}
+}
diff --git a/src/com/platform/utils/FileOperateHelper.java b/src/com/platform/utils/FileOperateHelper.java
index 3236c597..6773436c 100644
--- a/src/com/platform/utils/FileOperateHelper.java
+++ b/src/com/platform/utils/FileOperateHelper.java
@@ -1,95 +1,95 @@
-package com.platform.utils;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import org.junit.Test;
-
-/**
- * 文件读写操作帮助类
- * 
- * @author wuming
- * 
- */
-public class FileOperateHelper {
-
-	/**
-	 * 以追加的方式将信息写入文件
-	 * 
-	 * @param path
-	 * @param message
-	 */
-	@SuppressWarnings("resource")
-	public static void fileWrite(String path, String message) {
-		try {
-			File file = new File(path);
-			if (file.exists())
-				file.createNewFile();
-			FileOutputStream out = new FileOutputStream(file, true); // 如果追加方式用true
-			StringBuffer sb = new StringBuffer();
-			sb.append(message).append("\n");
-			out.write(sb.toString().getBytes("utf-8"));
-		} catch (IOException e) {
-			// TODO: handle exception
-		}
-	}
-
-	/**
-	 * 文件读取方法
-	 * @param path
-	 * @return
-	 */
-	@SuppressWarnings("resource")
-	public static String fileReader(String path) {
-		StringBuffer sb = new StringBuffer();
-		String tempString = "";
-		try {
-			File file = new File(path);
-			if (!file.exists())
-				return "";
-			FileInputStream fis = new FileInputStream(file);
-			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
-			while ((tempString = br.readLine()) != null) {
-				sb.append(tempString);
-			}
-		} catch (Exception e) {
-			// TODO: handle exception
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * 文件读取方法
-	 * @param path
-	 * @return
-	 */
-
-	@SuppressWarnings("resource")
-	public static String fileReaderAndendline(String path) {
-
-		StringBuffer sb = new StringBuffer();
-		String tempString = "";
-		try {
-			File file = new File(path);
-			if (!file.exists())
-
-				return "";
-
-			FileInputStream fis = new FileInputStream(file);
-			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
-			while ((tempString = br.readLine()) != null) {
-				sb.append(tempString+"\n");
-			}
-		} catch (Exception e) {
-			// TODO: handle exception
-		}
-		return sb.toString();
-	}
-
-	
-
-}
+package com.platform.utils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.junit.Test;
+
+/**
+ * 文件读写操作帮助类
+ * 
+ * @author wuming
+ * 
+ */
+public class FileOperateHelper {
+
+	/**
+	 * 以追加的方式将信息写入文件
+	 * 
+	 * @param path
+	 * @param message
+	 */
+	@SuppressWarnings("resource")
+	public static void fileWrite(String path, String message) {
+		try {
+			File file = new File(path);
+			if (file.exists())
+				file.createNewFile();
+			FileOutputStream out = new FileOutputStream(file, true); // 如果追加方式用true
+			StringBuffer sb = new StringBuffer();
+			sb.append(message).append("\n");
+			out.write(sb.toString().getBytes("utf-8"));
+		} catch (IOException e) {
+			// TODO: handle exception
+		}
+	}
+
+	/**
+	 * 文件读取方法
+	 * @param path
+	 * @return
+	 */
+	@SuppressWarnings("resource")
+	public static String fileReader(String path) {
+		StringBuffer sb = new StringBuffer();
+		String tempString = "";
+		try {
+			File file = new File(path);
+			if (!file.exists())
+				return "";
+			FileInputStream fis = new FileInputStream(file);
+			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
+			while ((tempString = br.readLine()) != null) {
+				sb.append(tempString);
+			}
+		} catch (Exception e) {
+			// TODO: handle exception
+		}
+		return sb.toString();
+	}
+	
+	/**
+	 * 文件读取方法
+	 * @param path
+	 * @return
+	 */
+
+	@SuppressWarnings("resource")
+	public static String fileReaderAndendline(String path) {
+
+		StringBuffer sb = new StringBuffer();
+		String tempString = "";
+		try {
+			File file = new File(path);
+			if (!file.exists())
+
+				return "";
+
+			FileInputStream fis = new FileInputStream(file);
+			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
+			while ((tempString = br.readLine()) != null) {
+				sb.append(tempString+"\n");
+			}
+		} catch (Exception e) {
+			// TODO: handle exception
+		}
+		return sb.toString();
+	}
+
+	
+
+}
diff --git a/src/com/platform/utils/GanymedSSH.java b/src/com/platform/utils/GanymedSSH.java
index 31598f93..194be049 100644
--- a/src/com/platform/utils/GanymedSSH.java
+++ b/src/com/platform/utils/GanymedSSH.java
@@ -1,268 +1,268 @@
-
-package com.platform.utils;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-
-import ch.ethz.ssh2.Connection;
-import ch.ethz.ssh2.Session;
-import ch.ethz.ssh2.StreamGobbler;
-
-import ch.ethz.ssh2.*;
-
-
-
-public class GanymedSSH {
-	public static Logger log = Logger.getLogger(GanymedSSH.class);
-	 Connection conn;
-
-	public boolean status = true;// 锟角凤拷锟斤拷锟街达拷锟斤拷锟斤拷锟阶刺�
-
-	public GanymedSSH() {
-		// TODO Auto-generated constructor stub
-		
-	}
-
-	public GanymedSSH(String host, String username, String password, int port) {
-		// TODO Auto-generated constructor stub
-		try {
-			conn = getOpenedConnection(host, username, password, port);
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-	}
-
-
-	public  Connection getOpenedConnection(String host, String username, String password, int port)
-			throws IOException {
-
-		conn = new Connection(host, port);
-		conn.connect(); // make sure the connection is opened
-		boolean isAuthenticated = conn.authenticateWithPassword(username, password);
-		if (isAuthenticated == false)
-			throw new IOException("Authentication failed.");
-		return conn;
-	}
-	
-	public  void execCmdNoWaitAcquiescent(String cmd) {
-		String host=Constant.hostIp;
-		String username=Constant.rootUser;
-		String password=Constant.rootPasswd;
-		int port=Constant.port;
-		
-		Session sess = null;
-		try {
-			
-			sess = conn.openSession();
-			// 执锟斤拷cmd
-			sess.execCommand(cmd);
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			sess.close();
-			
-		}
-	}
-	
-	public  void execCmdNoWait(String host, String username, String password, int port, String cmd) {
-		
-		Session sess = null;
-		try {
-			conn = getOpenedConnection(host, username, password, port);
-			sess = conn.openSession();
-			// 执锟斤拷cmd
-			sess.execCommand(cmd);
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			sess.close();
-			
-		}
-	}
-
-	public  List<String> execCmdWaitAcquiescent(String cmd) {
-		String host=Constant.hostIp;
-		String username=Constant.rootUser;
-		String password=Constant.rootPasswd;
-		int port=Constant.port;
-		List<String> reStrings = new ArrayList<String>();
-		
-		Session sess = null;
-		try {
-			
-			sess = conn.openSession();
-			// 执锟斤拷cmd
-			sess.execCommand(cmd);
-
-			InputStream stdout = new StreamGobbler(sess.getStdout());
-			InputStream stderr = new StreamGobbler(sess.getStderr());
-			BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
-			BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
-			while (true) {
-				String line = stderrReader.readLine();
-
-				if (line != null) {
-//					System.out.println(line);
-					reStrings.add(line);
-				} else {
-					break;
-				}
-			}
-			
-			if(reStrings.size()==0){		
-				while (true) {
-					String line = stdoutReader.readLine();
-
-					if (line != null) {
-//						System.out.println(line);
-						reStrings.add(line);
-					} else {
-						break;
-					}
-				}
-			}
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			sess.close();
-			
-		}
-		return reStrings;
-	}
-	
-	public  List<String> execCmdWait(String host, String username, String password, int port, String cmd) {
-		List<String> reStrings = new ArrayList<String>();
-		
-		Session sess = null;
-		try {
-			
-			sess = conn.openSession();
-			// 执锟斤拷cmd
-			sess.execCommand(cmd);
-
-			InputStream stdout = new StreamGobbler(sess.getStdout());
-			InputStream stderr = new StreamGobbler(sess.getStderr());
-			BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
-			BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
-			while (true) {
-				String line = stdoutReader.readLine();
-
-				if (line != null) {
-//					System.out.println(line);
-					reStrings.add(line);
-				} else {
-					break;
-				}
-			}
-			if(reStrings.size()==0){			
-			while (true) {
-				String line = stderrReader.readLine();
-
-				if (line != null) {
-//					System.out.println(line);
-					reStrings.add(line);
-				} else {
-					break;
-				}
-			}
-			}
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			sess.close();
-			
-		}
-		return reStrings;
-	}
-
-	public  Map<String, String> execMD5cmd(String cmd) {
-		Map<String, String> md5 = new HashMap<String, String>();
-
-		
-		Session sess = null;
-		try {
-			
-			sess = conn.openSession();
-			// 执锟斤拷cmd
-			sess.execCommand(cmd);
-			
-			InputStream stdout = new StreamGobbler(sess.getStdout());
-			InputStream stderr = new StreamGobbler(sess.getStderr());
-			BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
-			BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
-			while (true) {
-				String line = stdoutReader.readLine();
-
-				if (line != null) {
-					String[] lines = line.split("  ");
-					String key = lines[1].trim();
-					String value = lines[0].trim();
-					md5.put(key, value);
-				} else {
-					break;
-				}
-			}
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			sess.close();
-			
-		}
-		return md5;
-	}
-
-	public String execGetSize(String cmd) {
-		status = false;
-		String str_size = "0";
-		Session sess = null;
-		try {
-
-			// 执锟斤拷cmd
-			sess = conn.openSession();
-			sess.execCommand(cmd);
-			InputStream stdout = new StreamGobbler(sess.getStdout());
-
-			@SuppressWarnings("resource")
-			BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
-			while (true) {
-				String line = br.readLine();
-				if (line != null) {
-					// String[] lines=line.split(" ");
-					// str_size=lines[0];
-
-					str_size = line;
-				} else {
-					break;
-				}
-
-			}
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			sess.close();
-		}
-		status = true;
-		return str_size;
-	}
-	public static void main(String[] args) {
-		PropertyConfigurator.configure("log4j.properties");
-	}
-
-}
+
+package com.platform.utils;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+
+import ch.ethz.ssh2.Connection;
+import ch.ethz.ssh2.Session;
+import ch.ethz.ssh2.StreamGobbler;
+
+import ch.ethz.ssh2.*;
+
+
+
+public class GanymedSSH {
+	public static Logger log = Logger.getLogger(GanymedSSH.class);
+	 Connection conn;
+
+	public boolean status = true;// 锟角凤拷锟斤拷锟街达拷锟斤拷锟斤拷锟阶刺�
+
+	public GanymedSSH() {
+		// TODO Auto-generated constructor stub
+		
+	}
+
+	public GanymedSSH(String host, String username, String password, int port) {
+		// TODO Auto-generated constructor stub
+		try {
+			conn = getOpenedConnection(host, username, password, port);
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+	}
+
+
+	public  Connection getOpenedConnection(String host, String username, String password, int port)
+			throws IOException {
+
+		conn = new Connection(host, port);
+		conn.connect(); // make sure the connection is opened
+		boolean isAuthenticated = conn.authenticateWithPassword(username, password);
+		if (isAuthenticated == false)
+			throw new IOException("Authentication failed.");
+		return conn;
+	}
+	
+	public  void execCmdNoWaitAcquiescent(String cmd) {
+		String host=Constant.hostIp;
+		String username=Constant.rootUser;
+		String password=Constant.rootPasswd;
+		int port=Constant.port;
+		
+		Session sess = null;
+		try {
+			
+			sess = conn.openSession();
+			// 执锟斤拷cmd
+			sess.execCommand(cmd);
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} finally {
+			sess.close();
+			
+		}
+	}
+	
+	public  void execCmdNoWait(String host, String username, String password, int port, String cmd) {
+		
+		Session sess = null;
+		try {
+			conn = getOpenedConnection(host, username, password, port);
+			sess = conn.openSession();
+			// 执锟斤拷cmd
+			sess.execCommand(cmd);
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} finally {
+			sess.close();
+			
+		}
+	}
+
+	public  List<String> execCmdWaitAcquiescent(String cmd) {
+		String host=Constant.hostIp;
+		String username=Constant.rootUser;
+		String password=Constant.rootPasswd;
+		int port=Constant.port;
+		List<String> reStrings = new ArrayList<String>();
+		
+		Session sess = null;
+		try {
+			
+			sess = conn.openSession();
+			// 执锟斤拷cmd
+			sess.execCommand(cmd);
+
+			InputStream stdout = new StreamGobbler(sess.getStdout());
+			InputStream stderr = new StreamGobbler(sess.getStderr());
+			BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
+			BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
+			while (true) {
+				String line = stderrReader.readLine();
+
+				if (line != null) {
+//					System.out.println(line);
+					reStrings.add(line);
+				} else {
+					break;
+				}
+			}
+			
+			if(reStrings.size()==0){		
+				while (true) {
+					String line = stdoutReader.readLine();
+
+					if (line != null) {
+//						System.out.println(line);
+						reStrings.add(line);
+					} else {
+						break;
+					}
+				}
+			}
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} finally {
+			sess.close();
+			
+		}
+		return reStrings;
+	}
+	
+	public  List<String> execCmdWait(String host, String username, String password, int port, String cmd) {
+		List<String> reStrings = new ArrayList<String>();
+		
+		Session sess = null;
+		try {
+			
+			sess = conn.openSession();
+			// 执锟斤拷cmd
+			sess.execCommand(cmd);
+
+			InputStream stdout = new StreamGobbler(sess.getStdout());
+			InputStream stderr = new StreamGobbler(sess.getStderr());
+			BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
+			BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
+			while (true) {
+				String line = stdoutReader.readLine();
+
+				if (line != null) {
+//					System.out.println(line);
+					reStrings.add(line);
+				} else {
+					break;
+				}
+			}
+			if(reStrings.size()==0){			
+			while (true) {
+				String line = stderrReader.readLine();
+
+				if (line != null) {
+//					System.out.println(line);
+					reStrings.add(line);
+				} else {
+					break;
+				}
+			}
+			}
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} finally {
+			sess.close();
+			
+		}
+		return reStrings;
+	}
+
+	public  Map<String, String> execMD5cmd(String cmd) {
+		Map<String, String> md5 = new HashMap<String, String>();
+
+		
+		Session sess = null;
+		try {
+			
+			sess = conn.openSession();
+			// 执锟斤拷cmd
+			sess.execCommand(cmd);
+			
+			InputStream stdout = new StreamGobbler(sess.getStdout());
+			InputStream stderr = new StreamGobbler(sess.getStderr());
+			BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
+			BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
+			while (true) {
+				String line = stdoutReader.readLine();
+
+				if (line != null) {
+					String[] lines = line.split("  ");
+					String key = lines[1].trim();
+					String value = lines[0].trim();
+					md5.put(key, value);
+				} else {
+					break;
+				}
+			}
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} finally {
+			sess.close();
+			
+		}
+		return md5;
+	}
+
+	public String execGetSize(String cmd) {
+		status = false;
+		String str_size = "0";
+		Session sess = null;
+		try {
+
+			// 执锟斤拷cmd
+			sess = conn.openSession();
+			sess.execCommand(cmd);
+			InputStream stdout = new StreamGobbler(sess.getStdout());
+
+			@SuppressWarnings("resource")
+			BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
+			while (true) {
+				String line = br.readLine();
+				if (line != null) {
+					// String[] lines=line.split(" ");
+					// str_size=lines[0];
+
+					str_size = line;
+				} else {
+					break;
+				}
+
+			}
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} finally {
+			sess.close();
+		}
+		status = true;
+		return str_size;
+	}
+	public static void main(String[] args) {
+		PropertyConfigurator.configure("log4j.properties");
+	}
+
+}
diff --git a/src/com/platform/utils/RunCommand.java b/src/com/platform/utils/RunCommand.java
index 66292a2a..126c4453 100644
--- a/src/com/platform/utils/RunCommand.java
+++ b/src/com/platform/utils/RunCommand.java
@@ -1,60 +1,60 @@
-package com.platform.utils;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.log4j.*;
-
-public class RunCommand {
-
-
-	public static Logger log = Logger.getLogger(RunCommand.class);
-
-	public List<String> runCommandWait(String command) {
-		List<String> reStrings = null;
-		String cmds[] = { "/bin/bash", "-c", command };
-		try {
-			Process ps = Runtime.getRuntime().exec(cmds);
-			ps.waitFor();
-			BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
-			reStrings = new ArrayList<String>();
-			String line;
-			while ((line = br.readLine()) != null) {
-				reStrings.add(line);
-				// System.out.println(line);
-			}
-			
-			br = new BufferedReader(new InputStreamReader(ps.getErrorStream()));
-			reStrings = new ArrayList<String>();
-			
-			while ((line = br.readLine()) != null) {
-				reStrings.add(line);
-				// System.out.println(line);
-			}
-		} catch (Exception e) {
-
-			log.error("0001 runCommandWait is error");
-
-			e.printStackTrace();
-		}
-		return reStrings;
-	}
-
-	public int runCommand(String command) {
-		List<String> reStrings = null;
-		String cmds[] = { "/bin/bash", "-c", command };
-		try {
-			Process ps = Runtime.getRuntime().exec(cmds);
-		} catch (Exception e) {
-
-			log.error("0002 runCommand execute " + command + " is error");
-
-			e.printStackTrace();
-			return -1;
-		}
-		return 1;
-	}
-
-
-}
+package com.platform.utils;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.log4j.*;
+
+public class RunCommand {
+
+
+	public static Logger log = Logger.getLogger(RunCommand.class);
+
+	public List<String> runCommandWait(String command) {
+		List<String> reStrings = null;
+		String cmds[] = { "/bin/bash", "-c", command };
+		try {
+			Process ps = Runtime.getRuntime().exec(cmds);
+			ps.waitFor();
+			BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
+			reStrings = new ArrayList<String>();
+			String line;
+			while ((line = br.readLine()) != null) {
+				reStrings.add(line);
+				// System.out.println(line);
+			}
+			
+			br = new BufferedReader(new InputStreamReader(ps.getErrorStream()));
+			reStrings = new ArrayList<String>();
+			
+			while ((line = br.readLine()) != null) {
+				reStrings.add(line);
+				// System.out.println(line);
+			}
+		} catch (Exception e) {
+
+			log.error("0001 runCommandWait is error");
+
+			e.printStackTrace();
+		}
+		return reStrings;
+	}
+
+	public int runCommand(String command) {
+		List<String> reStrings = null;
+		String cmds[] = { "/bin/bash", "-c", command };
+		try {
+			Process ps = Runtime.getRuntime().exec(cmds);
+		} catch (Exception e) {
+
+			log.error("0002 runCommand execute " + command + " is error");
+
+			e.printStackTrace();
+			return -1;
+		}
+		return 1;
+	}
+
+
+}
diff --git a/src/com/platform/utils/Support.java b/src/com/platform/utils/Support.java
index 1b4cdc92..4288021e 100644
--- a/src/com/platform/utils/Support.java
+++ b/src/com/platform/utils/Support.java
@@ -1,31 +1,31 @@
-
-/**
- * 文件名   :   Support.java
- * 版权       :   <版权/公司名>
- * 描述       :   <描述>
- * @author  liliy
- * 版本       :   <版本>
- * 修改时间:      2016年9月12日
- * 修改内容:      <修改内容>
- */
-package com.platform.utils;
-
-import java.util.regex.Pattern;
-
-/**
- * <一句话功能简述>
- * <功能详细描述>
- * @author    liliy
- * @version   [版本号,2016年9月12日]
- * @see       [相关类/方法]
- * @since     [产品/模块版本]
- */
-
-public class Support {
-	 public static boolean checkIP(String str) {
-	        Pattern pattern = Pattern
-	                .compile("^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]"
-	                        + "|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$");
-	        return pattern.matcher(str).matches();
-	    }
-}
+
+/**
+ * 文件名   :   Support.java
+ * 版权       :   <版权/公司名>
+ * 描述       :   <描述>
+ * @author  liliy
+ * 版本       :   <版本>
+ * 修改时间:      2016年9月12日
+ * 修改内容:      <修改内容>
+ */
+package com.platform.utils;
+
+import java.util.regex.Pattern;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author    liliy
+ * @version   [版本号,2016年9月12日]
+ * @see       [相关类/方法]
+ * @since     [产品/模块版本]
+ */
+
+public class Support {
+	 public static boolean checkIP(String str) {
+	        Pattern pattern = Pattern
+	                .compile("^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]"
+	                        + "|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$");
+	        return pattern.matcher(str).matches();
+	    }
+}
diff --git a/src/com/platform/utils/TestSupport.java b/src/com/platform/utils/TestSupport.java
index 74d938cb..a4e6f79d 100644
--- a/src/com/platform/utils/TestSupport.java
+++ b/src/com/platform/utils/TestSupport.java
@@ -1,14 +1,14 @@
-package com.platform.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class TestSupport {
-public  List<String> strToList(String str) {
-	List<String> reStrings=new ArrayList<String>();
-	for(String one:str.split("\n")){
-		reStrings.add(one);
-	}
-	return reStrings;
-}
-}
+package com.platform.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestSupport {
+public  List<String> strToList(String str) {
+	List<String> reStrings=new ArrayList<String>();
+	for(String one:str.split("\n")){
+		reStrings.add(one);
+	}
+	return reStrings;
+}
+}
diff --git a/src/com/platform/utils/ThreadVolume.java b/src/com/platform/utils/ThreadVolume.java
index 6894b2d6..03832e9e 100644
--- a/src/com/platform/utils/ThreadVolume.java
+++ b/src/com/platform/utils/ThreadVolume.java
@@ -1,133 +1,133 @@
-package com.platform.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.stereotype.Service;
-
-import com.base.Custom4exception;
-import com.base.CustomException;
-import com.platform.entities.Brick;
-import com.platform.entities.FolderNode;
-import com.platform.entities.VolumeEntity;
-import com.platform.glusterfs.ClusterInfo;
-import com.platform.glusterfs.GetTreeData;
-import com.platform.glusterfs.VolumeInfo;
-
-public class ThreadVolume extends Thread implements Runnable{
-	
-	/**
-	 * 挂载点路径 -- 暂时无用的
-	 */
-	private static String pointPath = "/home";
-	
-	/**  Volume信息查询  */
-	private VolumeInfo volumeInfo = new VolumeInfo();
-	
-	private ClusterInfo cluster = new ClusterInfo();
-	
-	public ThreadVolume() {
-		// TODO Auto-generated constructor stub
-	}
-	
-	public ThreadVolume(String path) {
-		if (null != path && !"".equals(path.trim())) {
-			ThreadVolume.pointPath = path;
-		}
-	}
-	
-	/** gfs目录树形展示  */
-	private GetTreeData gfsTree = new GetTreeData();
-	
-	@Override
-	public void run() {
-		super.run();
-		while(true){
-				List<FolderNode> folderlist = new ArrayList<FolderNode>();
-				List<VolumeEntity> volumeList = new ArrayList<VolumeEntity>();
-				// brick状态 map集合
-				Map<String, String> brickStatusMap = cluster.showClusterInfo();
-				
-				//查询 volume name
-				List<String> volumeNameList = volumeInfo.showAllVolumeName();
-				if (null != volumeNameList) {
-					for (String volumeName : volumeNameList) {
-						try {
-							VolumeEntity volume = new VolumeEntity();
-							volume.setName(volumeName);
-							List<String> path = volumeInfo.getVolumeMountPoint(volumeName);
-							//默认加载第一个路径
-							if (null != path && path.size() > 0) {
-								volume.setPath(path.get(0));
-							}
-							volume.setAllSize(volumeInfo.getVolumeAvailableSize(volumeName));
-							volume.setStatus(volumeInfo.getVolumeStatus(volumeName));
-							volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName));
-							volume.setType(volumeInfo.getVolumeType(volumeName));
-							//TODO 查询brick--
-							//返回     ip:path
-							List<String> brickStrs = volumeInfo.getVolumeBricks(volumeName);
-							//brick已用大小:
-							Map<String, Double> usedSize = volumeInfo.getVolumebricksDataSize(volumeName);
-							Map<String, Double> availableSize = volumeInfo.getVolumebricksAvailableSize(volumeName);
-							
-							List<Brick> brickList = new ArrayList<Brick>();
-							for (String brickIpPath : brickStrs) {
-								Brick b = new Brick();
-								String ipAndpath[] = brickIpPath.split(":");
-								String brickip = ipAndpath[0];
-								String brickpath = ipAndpath[1];
-								//iP ,  path ,  
-								b.setIp(brickip);
-								if(brickStatusMap==null || brickStatusMap.size()==0){
-									b.setStatus(false);
-								}else if (brickStatusMap.containsKey(brickip)) {
-									b.setStatus(true);
-								}
-								else {
-									b.setStatus(false);
-								}
-								b.setPath(brickpath);
-								b.setAvailableSize(availableSize.get(brickIpPath));
-								b.setUsedSize(usedSize.get(brickIpPath));
-								brickList.add(b);
-							}
-							volume.setBrick(brickList);
-							
-							
-							//默认加载第一个路径
-							if (null != path && path.size() > 0) {
-								//装入 folder:
-								//查询 每个 volume 下的 folder
-								FolderNode foldertmp = gfsTree.getDatas(path.get(0));
-								folderlist.add(foldertmp);
-							}
-							volumeList.add(volume);
-						}catch (Exception e) {
-							new CustomException(Custom4exception.threadVolume_class_Except,e);
-						}
-					}
-				}
-				//TODO 更新folder 目录
-				CacheTreeData.setFolders(folderlist);
-				CacheTreeData.setVolumeList(volumeList);
-				try {
-					Thread.sleep(Constant.get_volume_sleep_time);
-				} catch (InterruptedException e) {
-					new CustomException(Custom4exception.threadVolume_Thread_Except,e);
-				}
-				
-		}
-		
-	}
-
-	public static String getPointPath() {
-		return pointPath;
-	}
-
-	public static void setPointPath(String pointPath) {
-		ThreadVolume.pointPath = pointPath;
-	}
-	
-}
+package com.platform.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+import com.base.Custom4exception;
+import com.base.CustomException;
+import com.platform.entities.Brick;
+import com.platform.entities.FolderNode;
+import com.platform.entities.VolumeEntity;
+import com.platform.glusterfs.ClusterInfo;
+import com.platform.glusterfs.GetTreeData;
+import com.platform.glusterfs.VolumeInfo;
+
+public class ThreadVolume extends Thread implements Runnable{
+	
+	/**
+	 * 挂载点路径 -- 暂时无用的
+	 */
+	private static String pointPath = "/home";
+	
+	/**  Volume信息查询  */
+	private VolumeInfo volumeInfo = new VolumeInfo();
+	
+	private ClusterInfo cluster = new ClusterInfo();
+	
+	public ThreadVolume() {
+		// TODO Auto-generated constructor stub
+	}
+	
+	public ThreadVolume(String path) {
+		if (null != path && !"".equals(path.trim())) {
+			ThreadVolume.pointPath = path;
+		}
+	}
+	
+	/** gfs目录树形展示  */
+	private GetTreeData gfsTree = new GetTreeData();
+	
+	@Override
+	public void run() {
+		super.run();
+		while(true){
+				List<FolderNode> folderlist = new ArrayList<FolderNode>();
+				List<VolumeEntity> volumeList = new ArrayList<VolumeEntity>();
+				// brick状态 map集合
+				Map<String, String> brickStatusMap = cluster.showClusterInfo();
+				
+				//查询 volume name
+				List<String> volumeNameList = volumeInfo.showAllVolumeName();
+				if (null != volumeNameList) {
+					for (String volumeName : volumeNameList) {
+						try {
+							VolumeEntity volume = new VolumeEntity();
+							volume.setName(volumeName);
+							List<String> path = volumeInfo.getVolumeMountPoint(volumeName);
+							//默认加载第一个路径
+							if (null != path && path.size() > 0) {
+								volume.setPath(path.get(0));
+							}
+							volume.setAllSize(volumeInfo.getVolumeAvailableSize(volumeName));
+							volume.setStatus(volumeInfo.getVolumeStatus(volumeName));
+							volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName));
+							volume.setType(volumeInfo.getVolumeType(volumeName));
+							//TODO 查询brick--
+							//返回     ip:path
+							List<String> brickStrs = volumeInfo.getVolumeBricks(volumeName);
+							//brick已用大小:
+							Map<String, Double> usedSize = volumeInfo.getVolumebricksDataSize(volumeName);
+							Map<String, Double> availableSize = volumeInfo.getVolumebricksAvailableSize(volumeName);
+							
+							List<Brick> brickList = new ArrayList<Brick>();
+							for (String brickIpPath : brickStrs) {
+								Brick b = new Brick();
+								String ipAndpath[] = brickIpPath.split(":");
+								String brickip = ipAndpath[0];
+								String brickpath = ipAndpath[1];
+								//iP ,  path ,  
+								b.setIp(brickip);
+								if(brickStatusMap==null || brickStatusMap.size()==0){
+									b.setStatus(false);
+								}else if (brickStatusMap.containsKey(brickip)) {
+									b.setStatus(true);
+								}
+								else {
+									b.setStatus(false);
+								}
+								b.setPath(brickpath);
+								b.setAvailableSize(availableSize.get(brickIpPath));
+								b.setUsedSize(usedSize.get(brickIpPath));
+								brickList.add(b);
+							}
+							volume.setBrick(brickList);
+							
+							
+							//默认加载第一个路径
+							if (null != path && path.size() > 0) {
+								//装入 folder:
+								//查询 每个 volume 下的 folder
+								FolderNode foldertmp = gfsTree.getDatas(path.get(0));
+								folderlist.add(foldertmp);
+							}
+							volumeList.add(volume);
+						}catch (Exception e) {
+							new CustomException(Custom4exception.threadVolume_class_Except,e);
+						}
+					}
+				}
+				//TODO 更新folder 目录
+				CacheTreeData.setFolders(folderlist);
+				CacheTreeData.setVolumeList(volumeList);
+				try {
+					Thread.sleep(Constant.get_volume_sleep_time);
+				} catch (InterruptedException e) {
+					new CustomException(Custom4exception.threadVolume_Thread_Except,e);
+				}
+				
+		}
+		
+	}
+
+	public static String getPointPath() {
+		return pointPath;
+	}
+
+	public static void setPointPath(String pointPath) {
+		ThreadVolume.pointPath = pointPath;
+	}
+	
+}
diff --git a/src/com/platform/utils/UtilsHelper.java b/src/com/platform/utils/UtilsHelper.java
index 3da84c22..1c040bbc 100644
--- a/src/com/platform/utils/UtilsHelper.java
+++ b/src/com/platform/utils/UtilsHelper.java
@@ -1,113 +1,113 @@
-package com.platform.utils;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-public class UtilsHelper {
-	/**
-	 * 
-	 * @param clazz
-	 * @param req
-	 * @return
-	 */
-	public static Object newObjAndSetAttrsByClass(Class<?> clazz,
-			Map<String, String> paramMap) {
-		Object object = null;
-		try {
-			object = clazz.newInstance();
-			Field[] fileds = clazz.getDeclaredFields();			
-			for (Field fs : fileds) {
-				String fieldName = fs.getName();
-				String fieldType = fs.getGenericType().toString()
-						.replace("class ", ""); // 如果type是类类型,则前面包含"class ",后面跟类名
-				if (paramMap.containsKey(fieldName)) {
-					Method method = clazz.getDeclaredMethod(
-							getAttributeSetName(fs), Class.forName(fieldType));
-					String value = paramMap.get(fieldName);					
-					if ("java.lang.Integer".equals(fieldType)) {
-						method.invoke(object, Integer.valueOf(value));
-					} else {
-						method.invoke(object, value);
-					}
-				}
-			}
-		} catch (InstantiationException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			// TODO Auto-generated catch blockAQA
-			e.printStackTrace();
-		} catch (NoSuchMethodException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (SecurityException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalArgumentException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (ClassNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}		
-		return object;
-	};
-
-	/**
-	 * 
-	 * @param object
-	 * @param req
-	 * @return
-	 */
-	public static Object newObjAndSetAttrsByInstance(Object object,
-			Map<String, String> mapParam) {
-		return newObjAndSetAttrsByClass(object.getClass(), mapParam);
-	}
-
-	/**
-	 * 生成属性{@fs}的set方法的名字
-	 * 
-	 * @param fs
-	 *            属性对象
-	 * @return set方法的名字
-	 */
-	private static String getAttributeSetName(Field fs) {
-		String fieldName = fs.getName();
-		char[] cs = fieldName.toCharArray();
-		cs[0] -= 32;
-		return "set" + String.valueOf(cs);
-	}
-
-	public static <K, V> Map<K, V> updateMap(Map<K, V> map1, Map<K, V> map2) {
-		if (null == map1 || map1.size() <= 0)
-			return map2;
-		Iterator<Entry<K, V>> iterator = map2.entrySet().iterator();
-		while (iterator.hasNext()) {
-			Map.Entry<K, V> entry = iterator.next();
-			map1.put(entry.getKey(), entry.getValue());
-		}
-		return map1;
-	}
-
-	public static <K, V> boolean isSubMap(Map<K, V> map1, Map<K, V> map2) {
-		boolean flag = true;
-		if (null == map2 || map2.size() <= 0 || null == map1)
-			return false;
-		Iterator<Map.Entry<K, V>> iterator = map1.entrySet().iterator();
-		while (iterator.hasNext()) {
-			Map.Entry<K, V> entry = iterator.next();
-			if (!map2.containsKey(entry.getKey())
-					|| !map2.containsValue(entry.getValue()))
-				return false;
-		}
-		return flag;
-	}
-
-}
+package com.platform.utils;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+public class UtilsHelper {
+	/**
+	 * 
+	 * @param clazz
+	 * @param req
+	 * @return
+	 */
+	public static Object newObjAndSetAttrsByClass(Class<?> clazz,
+			Map<String, String> paramMap) {
+		Object object = null;
+		try {
+			object = clazz.newInstance();
+			Field[] fileds = clazz.getDeclaredFields();			
+			for (Field fs : fileds) {
+				String fieldName = fs.getName();
+				String fieldType = fs.getGenericType().toString()
+						.replace("class ", ""); // 如果type是类类型,则前面包含"class ",后面跟类名
+				if (paramMap.containsKey(fieldName)) {
+					Method method = clazz.getDeclaredMethod(
+							getAttributeSetName(fs), Class.forName(fieldType));
+					String value = paramMap.get(fieldName);					
+					if ("java.lang.Integer".equals(fieldType)) {
+						method.invoke(object, Integer.valueOf(value));
+					} else {
+						method.invoke(object, value);
+					}
+				}
+			}
+		} catch (InstantiationException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			// TODO Auto-generated catch blockAQA
+			e.printStackTrace();
+		} catch (NoSuchMethodException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (SecurityException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (ClassNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}		
+		return object;
+	};
+
+	/**
+	 * 
+	 * @param object
+	 * @param req
+	 * @return
+	 */
+	public static Object newObjAndSetAttrsByInstance(Object object,
+			Map<String, String> mapParam) {
+		return newObjAndSetAttrsByClass(object.getClass(), mapParam);
+	}
+
+	/**
+	 * 生成属性{@fs}的set方法的名字
+	 * 
+	 * @param fs
+	 *            属性对象
+	 * @return set方法的名字
+	 */
+	private static String getAttributeSetName(Field fs) {
+		String fieldName = fs.getName();
+		char[] cs = fieldName.toCharArray();
+		cs[0] -= 32;
+		return "set" + String.valueOf(cs);
+	}
+
+	public static <K, V> Map<K, V> updateMap(Map<K, V> map1, Map<K, V> map2) {
+		if (null == map1 || map1.size() <= 0)
+			return map2;
+		Iterator<Entry<K, V>> iterator = map2.entrySet().iterator();
+		while (iterator.hasNext()) {
+			Map.Entry<K, V> entry = iterator.next();
+			map1.put(entry.getKey(), entry.getValue());
+		}
+		return map1;
+	}
+
+	public static <K, V> boolean isSubMap(Map<K, V> map1, Map<K, V> map2) {
+		boolean flag = true;
+		if (null == map2 || map2.size() <= 0 || null == map1)
+			return false;
+		Iterator<Map.Entry<K, V>> iterator = map1.entrySet().iterator();
+		while (iterator.hasNext()) {
+			Map.Entry<K, V> entry = iterator.next();
+			if (!map2.containsKey(entry.getKey())
+					|| !map2.containsValue(entry.getValue()))
+				return false;
+		}
+		return flag;
+	}
+
+}
diff --git a/src/com/platform/utils/getTreeDataByPath.java b/src/com/platform/utils/getTreeDataByPath.java
index c9e8ca30..5dbfb9be 100644
--- a/src/com/platform/utils/getTreeDataByPath.java
+++ b/src/com/platform/utils/getTreeDataByPath.java
@@ -1,49 +1,49 @@
-package com.platform.utils;
-
-import java.util.List;
-
-import com.platform.entities.FolderNode;
-
-public class getTreeDataByPath {
-	
-	/**
-	 * @param path
-	 * @return
-	 */
-	public FolderNode findByPath(String path) {
-		List<FolderNode> folderNodelist = CacheTreeData.getFolders();
-		if (null == folderNodelist) {
-			return null;
-		}
-		FolderNode folder = null;
-		for (FolderNode folderNode : folderNodelist) {
-			folder = getFolder(folderNode, path);
-			if (null != folder) {
-				break;
-			}
-		}
-		return folder;
-	}
-	
-	/**
-	 * @param f
-	 * @return
-	 */
-	private FolderNode getFolder(FolderNode f, String path){
-		FolderNode result = null;
-		if(path.equals(f.getPath())){
-			return f;
-		}
-		List<FolderNode> folds = f.getChildNodes();
-		if (null != folds) {
-			for (FolderNode folderNode : folds) {
-				result = getFolder(folderNode, path);
-				if (null != result) {
-					break;
-				}
-			}
-		}
-		return result;
-	}
-}
-
+package com.platform.utils;
+
+import java.util.List;
+
+import com.platform.entities.FolderNode;
+
+public class getTreeDataByPath {
+	
+	/**
+	 * @param path
+	 * @return
+	 */
+	public FolderNode findByPath(String path) {
+		List<FolderNode> folderNodelist = CacheTreeData.getFolders();
+		if (null == folderNodelist) {
+			return null;
+		}
+		FolderNode folder = null;
+		for (FolderNode folderNode : folderNodelist) {
+			folder = getFolder(folderNode, path);
+			if (null != folder) {
+				break;
+			}
+		}
+		return folder;
+	}
+	
+	/**
+	 * @param f
+	 * @return
+	 */
+	private FolderNode getFolder(FolderNode f, String path){
+		FolderNode result = null;
+		if(path.equals(f.getPath())){
+			return f;
+		}
+		List<FolderNode> folds = f.getChildNodes();
+		if (null != folds) {
+			for (FolderNode folderNode : folds) {
+				result = getFolder(folderNode, path);
+				if (null != result) {
+					break;
+				}
+			}
+		}
+		return result;
+	}
+}
+
diff --git a/src/com/platform/websocket/SystemWebSocketHandler.java b/src/com/platform/websocket/SystemWebSocketHandler.java
deleted file mode 100644
index dd6e3ddd..00000000
--- a/src/com/platform/websocket/SystemWebSocketHandler.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.platform.websocket;
-
-import org.springframework.web.socket.CloseStatus;
-import org.springframework.web.socket.TextMessage;
-import org.springframework.web.socket.WebSocketHandler;
-import org.springframework.web.socket.WebSocketMessage;
-import org.springframework.web.socket.WebSocketSession;
-
-public class SystemWebSocketHandler implements WebSocketHandler {
-
-	@Override
-	public void afterConnectionClosed(WebSocketSession arg0, CloseStatus arg1)
-			throws Exception {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void afterConnectionEstablished(WebSocketSession arg0)
-			throws Exception {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public void handleMessage(WebSocketSession arg0, WebSocketMessage<?> arg1)
-			throws Exception {
-		// TODO Auto-generated method stub
-		TextMessage returnMessage = new TextMessage("received at server"); 
-		sendMessageToUsers(returnMessage);
-		System.out.println("接到请求");
-	}
-
-	@Override
-	public void handleTransportError(WebSocketSession arg0, Throwable arg1)
-			throws Exception {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public boolean supportsPartialMessages() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-	
-	 public void sendMessageToUsers(TextMessage message) {  
-      
-     }   
-
-}
diff --git a/src/com/platform/websocket/WebSocketConfig.java b/src/com/platform/websocket/WebSocketConfig.java
deleted file mode 100644
index f9af5d89..00000000
--- a/src/com/platform/websocket/WebSocketConfig.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.platform.websocket;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.EnableWebMvc;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-import org.springframework.web.socket.WebSocketHandler;
-import org.springframework.web.socket.config.annotation.EnableWebSocket;
-import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
-import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
-
-
-@Configuration
-@EnableWebMvc
-@EnableWebSocket
-public class WebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer {
-
-	@Override
-	public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
-		// TODO Auto-generated method stub		
-		 registry.addHandler(myHandler(), "/webSocketServer"); 
-	}
-
-	@Bean
-	public WebSocketHandler myHandler() {
-		return new SystemWebSocketHandler();
-	}
-}