Browse Source

增加回签单上传功能

koul 5 years ago
parent
commit
b1d01a627d

+ 0 - 17
.idea/artifacts/yhnd_jar.xml

@@ -1,17 +0,0 @@
-<component name="ArtifactManager">
-  <artifact type="jar" name="yhnd:jar">
-    <output-path>$PROJECT_DIR$/classes/artifacts/yhnd_jar</output-path>
-    <root id="archive" name="yhnd.jar">
-      <element id="module-output" name="yhnd" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/flexjson-2.1.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/jackson-core-asl-1.9.13.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/log4j-1.2.15.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-csv-1.4.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/jackson-mapper-asl-1.9.13.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/dom4j-1.6.1.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/ojdbc6-11.2.0.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/junit.jar" path-in-jar="/" />
-      <element id="extracted-dir" path="$PROJECT_DIR$/lib/commons-net-3.6.jar" path-in-jar="/" />
-    </root>
-  </artifact>
-</component>

+ 9 - 0
.idea/libraries/httpclient_4_5_6.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="httpclient-4.5.6">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/httpclient-4.5.6.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/httpcore_4_4_10.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="httpcore-4.4.10">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/httpcore-4.4.10.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/httpmime_4_5_6.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="httpmime-4.5.6">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/httpmime-4.5.6.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/org_springframework_beans_3_1_2_RELEASE.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="org.springframework.beans-3.1.2.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/org.springframework.beans-3.1.2.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/org_springframework_core_3_2_2_RELEASE.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="org.springframework.core-3.2.2.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/org.springframework.core-3.2.2.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/spring_context_5_1_5_RELEASE.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="spring-context-5.1.5.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/spring-context-5.1.5.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/spring_test_5_1_6_RELEASE.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="spring-test-5.1.6.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/spring-test-5.1.6.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 9 - 0
.idea/libraries/spring_web_5_1_5_RELEASE.xml

@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="spring-web-5.1.5.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/lib/spring-web-5.1.5.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>

+ 0 - 0
src/META-INF/MANIFEST.MF → META-INF/MANIFEST.MF


BIN
lib/commons-io-2.4.jar


BIN
lib/httpcore-4.4.10.jar


BIN
lib/org.springframework.core-3.2.2.RELEASE.jar


BIN
lib/spring-test-5.1.6.RELEASE.jar


BIN
lib/spring-web-5.1.5.RELEASE.jar


+ 252 - 0
src/com/uas/fileUtil/FileUtil.java

@@ -0,0 +1,252 @@
+package com.uas.fileUtil;
+
+import org.apache.commons.io.FileUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.*;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+import java.util.zip.ZipOutputStream;
+
+/**
+ * @author yingp
+ *
+ */
+public class FileUtil {
+
+	/**
+	 * 压缩文件
+	 * 
+	 * @param srcFiles
+	 *            待压缩文件
+	 * @param zipFile
+	 *            压缩后保存的文件
+	 * @return
+	 */
+	public static boolean zip(String[] srcFiles, String zipFile) {
+		String[] fileNames = new String[srcFiles.length];
+		for (int i = 0; i < srcFiles.length; i++) {
+			fileNames[i] = getFileName(srcFiles[i]);
+		}
+		try {
+			BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(zipFile));
+			ZipOutputStream zos = new ZipOutputStream(bos);
+			String entryName = null;
+			for (int i = 0; i < fileNames.length; i++) {
+				entryName = fileNames[i];
+				ZipEntry entry = new ZipEntry(entryName);
+				zos.putNextEntry(entry);
+				BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFiles[i]));
+				byte[] b = new byte[1024];
+				while (bis.read(b, 0, 1024) != -1) {
+					zos.write(b, 0, 1024);
+				}
+				bis.close();
+				zos.closeEntry();
+			}
+			zos.flush();
+			zos.close();
+			return true;
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return false;
+	}
+
+	/**
+	 * 解析文件名
+	 * 
+	 * @param filePath
+	 * @return
+	 */
+	public static String getFileName(String filePath) {
+		int location = filePath.lastIndexOf(File.separator);
+		String fileName = filePath.substring(location + 1);
+		return fileName;
+	}
+
+	/**
+	 * 解压文件
+	 * 
+	 * @param zipFile
+	 *            压缩文件
+	 * @param parentDir
+	 *            解压到的路径
+	 * @return
+	 */
+	public static boolean unzip(String zipFile, String parentDir) {
+		try {
+			BufferedInputStream bis = new BufferedInputStream(new FileInputStream(zipFile));
+			ZipInputStream zis = new ZipInputStream(bis);
+			BufferedOutputStream bos = null;
+			ZipEntry entry = null;
+			while ((entry = zis.getNextEntry()) != null) {
+				String entryName = entry.getName();
+				bos = new BufferedOutputStream(new FileOutputStream(parentDir + entryName));
+				int b = 0;
+				while ((b = zis.read()) != -1) {
+					bos.write(b);
+				}
+				bos.flush();
+				bos.close();
+			}
+			zis.close();
+			return true;
+		} catch (IOException e) {
+
+		}
+		return false;
+	}
+
+	/**
+	 * 保存文件
+	 * 
+	 * <pre>
+	 * 优先判断是否设置了指定的文件系统,否则保存到本地
+	 * </pre>
+	 * 
+	 * @param file
+	 * @return
+	 */
+	public static String saveFile(MultipartFile file, String em_code) {
+		String path = uploadToLocal(file, em_code);
+		if(path.contains("\\")){//上传到本地返回路径修改
+			path=path.replace("\\", "/");
+		}
+		return path;
+	}
+
+	/**
+	 * 上传到文件系统
+	 * 
+	 * <pre>
+	 * rest接口
+	 * Post: http://10.10.100.200:9999/file/upload
+	 * Return: {"path": "http://dfs.ubtoc.com/group1/M00/00/32/CgpkyFc6OBiALiQ4ABetuG5lVxw921.pdf"}
+	 * </pre>
+	 * 
+	 * <pre>
+	 * 基于dubbo的hessian方式调用服务已经测试通过,下个版本saas系统建议采用
+	 * </pre>
+	 * 
+	 * @return
+	 */
+	private static String uploadToFs(MultipartFile file) {
+		return null;
+	}
+
+	/**
+	 * 上传到本地磁盘
+	 * 
+	 * @return
+	 */
+	private static String uploadToLocal(MultipartFile file, String em_code) {
+		String path =getFilePath(file.getOriginalFilename(), em_code);
+		try {
+			FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path));
+			return path;
+		} catch (IOException e1) {
+			e1.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
+	 * 生成文件实际存放的硬盘唯一路径
+	 * 
+	 * @param fileName
+	 * @return
+	 */
+	private static String getFilePath(String fileName, String em_code) {
+		String uuid = UUID.randomUUID().toString().replaceAll("\\-", "");
+		String suffix = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf("."), fileName.length()) : "";
+		String path = "/home/uas/program/uas/1/webapps/postattach";
+		File file = new File(path);
+		if (!file.isDirectory()) {
+			file.mkdir();
+			path = path + File.separator + em_code;
+			new File(path).mkdir();
+		} else {
+			path = path + File.separator + em_code;
+			file = new File(path);
+			if (!file.isDirectory()) {
+				file.mkdir();
+			}
+		}
+		return path + File.separator + uuid + suffix;
+	}
+	
+	/** 
+	 * 删除单个文件 
+	 * @param   sPath 被删除文件path 
+	 * @return 删除成功返回true,否则返回false 
+	 */  
+	public static boolean deleteFile(String sPath) {  
+	    boolean flag = false;  
+	    if (sPath.startsWith("http:") || sPath.startsWith("https:") || sPath.startsWith("ftp:") || 
+	    		sPath.startsWith("sftp:") || sPath.startsWith("B2B://")) {
+	    	return false;
+		}
+	    File file = new File(sPath);  
+	    // 路径为文件且不为空则进行删除  
+	    if (file.isFile() && file.exists()) {  
+	        file.delete();  
+	        flag = true;  
+	    }  
+	    return flag;  
+	}
+
+	public static Boolean fileUp(Connection connection,MultipartFile file,String sob){
+		boolean result = false;
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		String path = saveFile(file, "ADMIN");
+		String filename = file.getOriginalFilename().replaceAll(",", ",");
+		int size = (int) file.getSize();
+		Statement statement = null;
+		try {
+			statement = connection.createStatement();
+			String sql = "select " + sob + ".EMAILFILEPATH.nextval from dual";
+			ResultSet resultSet = statement.executeQuery(sql);
+			if (resultSet.next()) {
+				int id = resultSet.getInt(1);
+				String sql1 =
+						"INSERT INTO "+sob+".filepath(fp_id,fp_path,fp_size,fp_man,fp_date,fp_name) values(" + id + ",'" + path +
+						"'," + size + ",'"+"管理员"+"'," + "to_date('"+format.format(new Date())+"','yyyy-mm-dd HH24:mi:ss')" + ",'"+filename + "')";
+				int i = statement.executeUpdate(sql1);
+				if (i>0){
+					String substring =null;
+					if (filename.indexOf("-")!=-1) {
+						substring= filename.substring(0, filename.indexOf("-"));
+					}else
+						substring = filename.substring(0, filename.indexOf("."));
+					//String sql2 = "select " + sob + ".FTPATTCHTEMP_SEQ.nextval from dual";
+					//ResultSet resultSet2 = statement.executeQuery(sql2);
+					String sql3 = "INSERT INTO "+sob+".FTPATTCHTEMP(FT_ID,FT_ATTCH,FT_PIINOUTNO,FT_STATUS,FT_INSERTDATE,FT_FILENAME,FT_SOB)values(" + sob + ".FTPATTCHTEMP_SEQ.nextval,'" + id +";','" + substring + "','GET',to_date('"+format.format(new Date())+"','yyyy-mm-dd HH24:mi:ss')" + ",'"+filename +"','"+sob+"')";
+					int i1 = statement.executeUpdate(sql3);
+					if (i1 > 0) {
+						result = true;
+					}
+				}
+
+				/*String sql2 =
+						"update " + sob + ".prodinout set pi_attach = '" + id + ";' where pi_inoutno ='" + substring+"'";
+					int i = statement.executeUpdate(sql2);
+					if (i > 0) {
+						result = true;
+					}*/
+			}
+			statement.close();
+			return result;
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+		return result;
+	}
+}

+ 134 - 8
src/com/uas/main/Download.java

@@ -1,19 +1,20 @@
 package com.uas.main;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.sql.Connection;
 import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
+import com.uas.fileUtil.FileUtil;
 import org.apache.commons.net.ftp.FTPClient;
 
 import com.uas.util.BaseUtil;
 import com.uas.util.FtpUtil;
 import com.uas.util.JdbcUtil;
+import org.apache.http.entity.ContentType;
+import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.web.multipart.MultipartFile;
 
 public class Download {	
 	public static boolean updateAndLog(Connection connection,Map<String,Object> map,String depot,File file){
@@ -32,6 +33,7 @@ public class Download {
 		downloadByDepotAndSob("YHND_SZ");
 		downloadByDepotAndSob("YHND_HK");
 		downloadByDepotAndSob("YITOA_ZX");
+		downloadBySob();
 
 	}
 	
@@ -45,7 +47,7 @@ public class Download {
 		boolean bol = false;
 		if(con==null) return;
 		for(String key:set){
-			if(!"local".equals(key)){
+			if(!"local".equals(key)&&!"12".equals(key)&&!"13".equals(key)){
 				Map<String,Object> ftpMap = (Map<String,Object>)servMap.get(key);
 				FTPClient client = null;
 				try {
@@ -61,9 +63,9 @@ public class Download {
 									bol = updateAndLog(con,map,key,file);
 									if(bol){
 										if("1".equals(key)||"2".equals(key)||"3".equals(key)){
-											client.rename(file.getName(),".."+ File.separator + "reply_bak"+ File.separator + file.getName());
+											client.rename(file.getName(),"/reply_bak/"+file.getName());
 										}else{
-											client.rename(file.getName(),".."+ File.separator + "reply_bak"+ File.separator + file.getName());
+											client.rename(file.getName(),"/reply_bak/"+file.getName());
 											//FtpUtil.deleteFile(client,file.getName());
 										}
 									}
@@ -101,4 +103,128 @@ public class Download {
 			con = null;
 		}
 	}
+
+    public static void downloadBySob(){
+        Map<String,Object> servMap = JdbcUtil.getFtpConfigs();
+        Set<String> set = servMap.keySet();
+        Map<String, Object> map = null;
+        Connection con = null;
+        boolean bol = false;
+        for(String key:set){
+            if("12".equals(key)||"13".equals(key)){
+                Map<String,Object> ftpMap = (Map<String,Object>)servMap.get(key);
+                String directory = ftpMap.get("downloadpath").toString();
+                FTPClient client = null;
+                try {
+                    client = FtpUtil.connect(ftpMap);
+                    if(client!=null){
+                        List<File> files = FtpUtil.downloadAllFile(client,directory);
+                        String fileName = "";
+                        if(files!=null&&files.size()>0){
+                            for(File file:files){
+                                try{
+									fileName += "," + file.getName();
+									FileInputStream fileInputStream = new FileInputStream(file);
+									MultipartFile file1 = new MockMultipartFile(file.getName(), file.getName(),
+											ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
+									//MultipartFile file1 = (MultipartFile) file;
+									String s = file.getName().substring(0, 4);
+									if ("SZCK".equals(s)){
+										String sob = "YHND_SZ";
+										con = JdbcUtil.getConnectBySob(sob);
+										bol =FileUtil.fileUp(con,file1,sob);
+									}else if ("HKCK".equals(s)){
+										String sob = "YHND_HK";
+										con = JdbcUtil.getConnectBySob(sob);
+										bol =FileUtil.fileUp(con,file1,sob);
+									}else if("YTCK".equals(s)){
+										String sob = "YITOA_ZX";
+										con = JdbcUtil.getConnectBySob(sob);
+										bol =FileUtil.fileUp(con,file1,sob);
+									}else {
+										client.rename(file.getName(),"/PakingL_error/" + file.getName());
+									}
+                                    //bol = updateAndLog(con,map,key,file);
+                                    if(bol){
+                                    	client.rename(file.getName(),"/PakingL_bak/PL_" + file.getName());
+                                    }
+                                }catch(Exception e){
+                                    e.printStackTrace();
+                                    BaseUtil.getLogger().error(e.toString());
+                                    continue;
+                                }
+                                System.out.println("download " + file.getName() + " from " + ftpMap.get("ip") + " path:" + ftpMap.get("downloadpath"));
+                            }
+                        }
+                        if(!"".equals(fileName)){
+                            System.out.println("download " + fileName.substring(1) + " from " + ftpMap.get("ip") + " path:" + ftpMap.get("downloadpath"));
+                            BaseUtil.getLogger().info("download " + fileName.substring(1) + " from " + ftpMap.get("ip") + " path:" + ftpMap.get("downloadpath"));
+                        }
+						String directory1 = ftpMap.get("out").toString();
+						List<File> files1 = FtpUtil.downloadAllFile(client,directory1);
+						String fileName1 = "";
+						if(files1!=null&&files1.size()>0){
+							for(File file:files1){
+								try{
+									fileName += "," + file.getName();
+									//MultipartFile file1 = (MultipartFile) file;
+									FileInputStream fileInputStream = new FileInputStream(file);
+									MultipartFile file1 = new MockMultipartFile(file.getName(), file.getName(),
+											ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
+									String s = file.getName().substring(0, 4);
+									if ("SZCK".equals(s)){
+										String sob = "YHND_SZ";
+										con = JdbcUtil.getConnectBySob(sob);
+										bol =FileUtil.fileUp(con,file1,sob);
+									}else if ("HKCK".equals(s)){
+										String sob = "YHND_HK";
+										con = JdbcUtil.getConnectBySob(sob);
+										bol =FileUtil.fileUp(con,file1,sob);
+									}else if("YTCK".equals(s)){
+										String sob = "YITOA_ZX";
+										con = JdbcUtil.getConnectBySob(sob);
+										bol =FileUtil.fileUp(con,file1,sob);
+									}else {
+										client.rename(file.getName(), "/RT_error/" + file.getName());
+									}
+									//bol = updateAndLog(con,map,key,file);
+									if(bol){
+										client.rename(file.getName(), "/RT_bak/RT_" + file.getName());
+									}
+								}catch(Exception e){
+									e.printStackTrace();
+									BaseUtil.getLogger().error(e.toString());
+									continue;
+								}
+								System.out.println("download " + file.getName() + " from " + ftpMap.get("ip") + " " +
+										"path:" + ftpMap.get("out"));
+							}
+						}
+						if(!"".equals(fileName1)){
+							System.out.println("download " + fileName.substring(1) + " from " + ftpMap.get("ip") + " " +
+									"path:" + ftpMap.get("out"));
+							BaseUtil.getLogger().info("download " + fileName.substring(1) + " from " + ftpMap.get("ip") + " path:" + ftpMap.get("out"));
+						}
+
+                    }
+                } catch (Exception e) {
+                    BaseUtil.getLogger().error(e.toString());
+                    e.printStackTrace();
+                }finally{
+                    if(client!=null){
+                        FtpUtil.closeFtpClient(client);
+                    }
+                }
+            }
+        }
+        try{
+            if(con!=null){
+                con.close();
+            }
+        }catch(SQLException e){
+            BaseUtil.getLogger().error(e.toString());
+        }finally{
+            con = null;
+        }
+    }
 }

+ 32 - 0
src/com/uas/util/FtpUtil.java

@@ -13,6 +13,7 @@ import java.util.Map;
 import java.util.Properties;
 
 import org.apache.commons.net.ftp.FTPClient;
+import org.apache.commons.net.ftp.FTPClientConfig;
 import org.apache.commons.net.ftp.FTPFile;
 import org.apache.commons.net.ftp.FTPReply;
 
@@ -171,6 +172,37 @@ public class FtpUtil {
 		}
 		return files;
 	}
+
+
+    /**
+     *
+     * @param ftpClient
+     * @return 获取连接到的ftp站点下的文件夹所有文件
+     */
+    public static List<File> downloadAllFile(FTPClient ftpClient,String directory) {
+        List<File> files = new ArrayList<File>();
+        try {
+			ftpClient.enterLocalPassiveMode();
+			//ftpClient.setRemoteVerificationEnabled(false);
+			ftpClient.changeWorkingDirectory("/"+directory);// 转移到FTP服务器目录
+			FTPFile[] ftpFiles = ftpClient.listFiles();
+			//FTPFile[] newFtpFiles = ftpClient.listFiles("/re/");
+            for (FTPFile file : ftpFiles) {
+            	if (!".".equals(file.getName())&&!"..".equals(file.getName())){
+                File localFile = new File(System.getProperty("java.io.tmpdir") +File.separator + file.getName());
+                //
+                OutputStream os = new FileOutputStream(localFile);
+                ftpClient.retrieveFile(file.getName(), os);
+                os.close();
+                files.add(localFile);
+            	}
+            }
+        } catch (Exception e) {
+            BaseUtil.getLogger().error(e.toString());
+            e.printStackTrace();
+        }
+        return files;
+    }
 	
 	/**
 	 * 关闭ftp连接

+ 28 - 10
src/properties/ftpconfig.properties

@@ -76,6 +76,16 @@
 		"out":"distribute_in",
 		"remark":"旗丰"
 	},
+	"8":{
+		"ip":"sz.hi-mantech.com",
+		"port":46688,
+		"user":"userLY",
+		"password":"user_123456",
+		"downloadpath":"WMSANS",
+		"in":"WMSRECV",
+		"out":"WMSRELS",
+		"remark":"YHND_LY"
+	},
 	"9":{
 		"ip":"112.74.205.182",
 		"port":21,
@@ -96,16 +106,6 @@
 		"out":"distribute_in",
 		"remark":"YHND_Wingtech"
 	},
-	"8":{
-		"ip":"sz.hi-mantech.com",
-		"port":46688,
-		"user":"userLY",
-		"password":"user_123456",
-		"downloadpath":"WMSANS",
-		"in":"WMSRECV",
-		"out":"WMSRELS",
-		"remark":"YHND_LY"
-	},
 	"11":{
 		"ip":"112.74.205.182",
 		"port":21,
@@ -116,6 +116,24 @@
 		"out":"distribute_in",
 		"remark":"YHND_Wingtech"
 	},
+    "12":{
+        "ip":"sz.hi-mantech.com",
+        "port":46688,
+        "user":"userHC",
+        "password":"user_123456",
+        "downloadpath":"PakingL",
+        "out":"RT",
+        "remark":"YHND_Wingtech"
+    },
+    "13":{
+        "ip":"112.74.205.182",
+        "port":21,
+        "user":"YHND08",
+        "password":"Yhnd#$%2019",
+        "downloadpath":"PakingL",
+        "out":"RT",
+        "remark":"YHND_Wingtech"
+    },
 	"2_old":{
 		"ip":"218.255.13.107",
 		"port":21,

+ 10 - 0
yhnd.iml

@@ -103,5 +103,15 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="library" name="httpclient-4.5.6" level="project" />
+    <orderEntry type="library" name="httpcore-4.4.10" level="project" />
+    <orderEntry type="library" name="spring-web-5.1.5.RELEASE" level="project" />
+    <orderEntry type="library" name="commons-io-1.3.2" level="project" />
+    <orderEntry type="library" name="commons-io-2.4" level="project" />
+    <orderEntry type="library" name="spring-context-5.1.5.RELEASE" level="project" />
+    <orderEntry type="library" name="httpmime-4.5.6" level="project" />
+    <orderEntry type="library" name="org.springframework.core-3.2.2.RELEASE" level="project" />
+    <orderEntry type="library" name="org.springframework.beans-3.1.2.RELEASE" level="project" />
+    <orderEntry type="library" name="spring-test-5.1.6.RELEASE" level="project" />
   </component>
 </module>