Browse Source

增加ftp下载服务

刘韬 3 years ago
parent
commit
e88c02fcde

+ 1 - 1
DataFusion/.classpath

@@ -18,12 +18,12 @@
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxb-impl-2.3.0.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/kotlin-stdlib-1.3.50.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/kotlin-stdlib-common-1.3.50.jar"/>
-	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/log4j-1.2.17.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-8.0.18.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ojdbc6.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/okhttp-4.2.2.jar" sourcepath="/Users/liutao/.m2/repository/com/squareup/okhttp3/okhttp/4.2.2/okhttp-4.2.2-sources.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/okio-2.2.2.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sqljdbc42.jar"/>
 	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jfinal-4.8-bin-with-src.jar"/>
+	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-net-3.8.0.jar"/>
 	<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
 </classpath>

BIN
DataFusion/WebRoot/WEB-INF/lib/commons-net-3.8.0.jar


BIN
DataFusion/WebRoot/WEB-INF/lib/log4j-1.2.17.jar


+ 9 - 0
DataFusion/res/config.properties

@@ -3,5 +3,14 @@
 jdbcUrl_connected  = jdbc:oracle:thin:@172.18.0.29:1521/RIS
 user_connected 	   = ZLGD_YJP
 password_connected = ZLGD_YJP123
+#DB-local
+jdbcUrl_local  = jdbc:mysql://127.0.0.1:3306/pacsonline_pro?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
+user_local 	   = zskk
+password_local = Zskk_2022
+#DATE-FTP
+ftp_host     = 172.18.0.9
+ftp_port 	 = 2121
+ftp_user     = ftpuser
+ftp_password = ftpsilver
 #DATA-Parms
 institution_id     = 52200003

+ 13 - 1
DataFusion/src/com/zskk/config/ZskkConfig.java

@@ -61,18 +61,30 @@ public class ZskkConfig extends JFinalConfig {
 
 		return new DruidPlugin(PropKit.get("jdbcUrl_connected"), PropKit.get("user_connected"),PropKit.get("password_connected").trim());
 	}
+	
+	public static DruidPlugin createLocalDruidPlugin() {
+
+		return new DruidPlugin(PropKit.get("jdbcUrl_local"), PropKit.get("user_local"),PropKit.get("password_local").trim());
+	}
 
 	@Override
 	public void configPlugin(Plugins me) {
 		// 配置数据库连接池插件
 		DruidPlugin druidPluginConnected = createConnectedDruidPlugin();
 		me.add(druidPluginConnected);
+		
+		DruidPlugin druidPluginLocal = createLocalDruidPlugin();
+		me.add(druidPluginLocal);
 
 		// 配置ActiveRecord插件
 		ActiveRecordPlugin arpConnected = new ActiveRecordPlugin("connected", druidPluginConnected);
 		arpConnected.setDialect(new OracleDialect());
 		me.add(arpConnected);
-
+		
+		ActiveRecordPlugin arpLocal = new ActiveRecordPlugin("local", druidPluginLocal);
+		arpLocal.setDialect(new MysqlDialect());
+		me.add(arpLocal);
+		
 		Cron4jPlugin cpData = new Cron4jPlugin();
 		cpData.addTask("*/5 * * * *", new DataTask());
 		me.add(cpData);

+ 15 - 0
DataFusion/src/com/zskk/control/ViewController.java

@@ -16,6 +16,9 @@ import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.activerecord.dialect.OracleDialect;
 import com.jfinal.plugin.activerecord.dialect.SqlServerDialect;
 import com.jfinal.plugin.druid.DruidPlugin;
+import com.zskk.service.DataService;
+import com.zskk.service.ServiceFactory;
+
 import okhttp3.FormBody;
 import okhttp3.MediaType;
 import okhttp3.OkHttpClient;
@@ -57,6 +60,18 @@ public class ViewController extends Controller {
 		}
 	}
 	
+	public void testDown() {
+		try {
+			DataService dService = ServiceFactory.getService(DataService.class);
+			dService.downloadFtpFile("20220112\\\\011122C0.img","011122C0.img");
+
+
+		} catch (Exception e) {
+			// TODO: handle exception
+			this.renderText(e.toString());
+		}
+	}
+	
 	public static DruidPlugin createConnectedDruidPlugin() {
 
 		return new DruidPlugin(PropKit.get("jdbcUrl_connected"), PropKit.get("user_connected"),PropKit.get("password_connected").trim());

+ 40 - 0
DataFusion/src/com/zskk/service/DataService.java

@@ -1,9 +1,15 @@
 package com.zskk.service;
 
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.net.ftp.FTPClient;
+import org.apache.commons.net.ftp.FTPReply;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -121,6 +127,40 @@ public class DataService {
 		}
 	}
     
+    public static void downloadFtpFile(String remoteFileName, String fileName) {
+        FTPClient ftpClient = new FTPClient();
+        int reply;
+        try {
+            ftpClient.connect(PropKit.get("ftp_host"), PropKit.getInt("ftp_port"));
+            ftpClient.login(PropKit.get("ftp_user"), PropKit.get("ftp_password"));
+            reply = ftpClient.getReplyCode();
+            if (!FTPReply.isPositiveCompletion(reply)) {
+                ftpClient.disconnect();
+                return;
+            }
+            ftpClient.setControlEncoding("UTF-8");
+            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
+            ftpClient.enterLocalPassiveMode();
+
+            File localFile = new File("/home/zskk/FTP_FILE" + File.separatorChar + fileName);
+            OutputStream os = new FileOutputStream(localFile);
+            //ftp中文名需要iso-8859-1字符
+            boolean flag2 = ftpClient.retrieveFile(new String(remoteFileName.getBytes("GBK"), "iso-8859-1"), os);
+            if (!flag2) {
+                System.out.println("没有找到" + remoteFileName + "---该文件");
+                localFile.delete();
+            } else {
+                System.out.println("=================== save success");
+            }
+            os.close();
+            ftpClient.logout();
+            ftpClient.disconnect();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+    
+    
     public static void main(String[] args) {
     	Map <String,String> map = new HashMap<String,String>();
     	map.put("institution_id", "47600001");

+ 32 - 0
DataFusion/src/com/zskk/task/DownloadTask.java

@@ -0,0 +1,32 @@
+package com.zskk.task;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.net.ftp.FTPClient;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
+import com.jfinal.plugin.cron4j.ITask;
+import com.zskk.service.DataService;
+import com.zskk.service.ServiceFactory;
+import com.zskk.service.ThreadPoolService;
+
+public class DownloadTask implements ITask {
+
+	@Override
+	public void run() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void stop() {
+		// TODO Auto-generated method stub
+
+	}
+
+}

+ 92 - 0
DataFusion/src/com/zskk/task/InfoTask.java

@@ -0,0 +1,92 @@
+package com.zskk.task;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
+import com.jfinal.plugin.cron4j.ITask;
+import com.zskk.service.DataService;
+import com.zskk.service.ServiceFactory;
+import com.zskk.service.ThreadPoolService;
+
+public class InfoTask implements ITask {
+
+	@Override
+	public void run() {
+		// TODO Auto-generated method stub
+		DataService dService = ServiceFactory.getService(DataService.class);
+        JSONArray jsonArray = dService.getExamList(30);	
+        for (Object object : jsonArray) {
+        	try {
+			JSONObject jsonObject = JSON.parseObject(object.toString());
+			Record record = Db.use("connected").findFirst("select * from examinfo where STUDYUID=?", jsonObject.getString("studyuid"));
+			if (record == null) {
+				continue;
+			}
+			Map<String, String> params = new HashMap<>();
+			params.put("exam_id", jsonObject.getString("id"));
+			//报告医生姓名
+			params.put("report_doctor_name", record.getStr("REPORTDOCTOR"));
+			//报告时间
+			params.put("report_datetime", "");
+			//审核医生姓名
+			params.put("review_doctor_name", "");
+			//审核时间
+			params.put("review_datetime", "");
+			//确认医生姓名
+			params.put("confirm_doctor_name", "");
+			//确认时间
+			params.put("confirm_datetime", "");
+			//意见建议
+			params.put("impression", "");
+			//影像所见
+			params.put("description", "");
+			//exams表
+			//申请科室
+			params.put("application_department", record.getStr("DEPARTMENT"));
+			//申请医生
+			params.put("application_doctor", record.getStr("CLINICALDOCTOR"));
+			//临床诊断
+			params.put("clin_diag", record.getStr("DIAGNOSIS")==null?"":record.getStr("DIAGNOSIS"));
+			//症状
+			params.put("clin_symp", record.getStr("SYMPTOM")==null?"":record.getStr("SYMPTOM"));
+			//patient_infos表
+			//患者姓名
+			params.put("name", record.getStr("PATIENTNAME"));
+			//患者手机号
+			params.put("phone", record.getStr("PHONE")==null?"":record.getStr("PHONE"));
+			//患者身份证号
+			params.put("card_num", record.getStr("INDCARD")==null?"":record.getStr("INDCARD"));
+			//检查结果1阴2阳
+			params.put("report_result", "0");
+			//住院号
+			params.put("hopitalized_no", record.getStr("INPATIENTNUM")==null?"":record.getStr("INPATIENTNUM"));
+			//门诊号
+			params.put("out_patient", record.getStr("OUTPATIENTNUM")==null?"":record.getStr("OUTPATIENTNUM"));
+			//病人ID
+			params.put("his_patient_id", record.getStr("PATIENTNUM")==null?"":record.getStr("PATIENTNUM"));
+			//检查方法
+			params.put("exam_project", record.getStr("PROJECT"));
+
+			ThreadPoolService tService = ServiceFactory.getService(ThreadPoolService.class);
+			tService.execute(() -> {
+				dService.updatePatientInfo(params);
+			});	
+        	} catch (Exception e) {
+				// TODO: handle exception
+        		continue;
+			}
+        }
+	}
+
+	@Override
+	public void stop() {
+		// TODO Auto-generated method stub
+
+	}
+
+}