From fd87bf7fce756a116b72ad2bdbed29162a13f87a Mon Sep 17 00:00:00 2001 From: JIe Date: Tue, 10 Dec 2024 20:04:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=B6=88=E6=81=AF=E4=B8=8D?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E5=A0=86=E6=A0=88=E4=BF=A1=E6=81=AF,=20?= =?UTF-8?q?=E8=AF=A5=E4=BF=A1=E6=81=AF=E4=B8=8D=E5=BA=94=E8=AF=A5=E5=90=91?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 27 ++++++++++++++++++++++----- src/mes_service.rs | 6 +++--- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index d900481..2ce2593 100644 --- a/src/main.rs +++ b/src/main.rs @@ -269,17 +269,28 @@ impl MainWindow { let label = self.label.clone(); let download_type: DownloadType = self.selection.unwrap(); let online = self.is_online.clone(); + if label == ""{ + add_log("请输入Label".to_string()); + return; + } std::thread::spawn(move || { let mut download_wrapper = download_wrapper::DownloadWrapper::new(); let mut mes_service: MesService; if online { add_log("当前为在线模式, 正在连接数据库".to_string()); - mes_service = MesService::new(mes_config.ip.clone(), mes_config.port.clone(), mes_config.username.clone(), mes_config.password.clone(), mes_config.database.clone()); + match MesService::new(mes_config.ip.clone(), mes_config.port.clone(), mes_config.username.clone(), mes_config.password.clone(), mes_config.database.clone()){ + Ok(service) => mes_service = service, + Err(e) =>{ + add_log(format!("连接数据库失败: {:?}", e.to_string())); + sender.send(Message::DownloadEnd(false)).unwrap(); + return; + } + } add_log("连接成功".to_string()); add_log("正在过站检测".to_string()); let check_result = mes_service.check_station(mes_config.work_order.clone(), label.clone(), download_type); if let Err(res) = check_result { - add_log(format!("过站检测失败: {:?}", res)); + add_log(format!("过站检测失败: {:?}", res.to_string())); sender.send(Message::DownloadEnd(false)).unwrap(); return; } else if let Ok(res) = check_result { @@ -343,11 +354,17 @@ impl MainWindow { } return if online { - mes_service = MesService::new(mes_config.ip, mes_config.port, mes_config.username, mes_config.password, mes_config.database); - add_log("正在上传数据".to_string()); + match MesService::new(mes_config.ip.clone(), mes_config.port.clone(), mes_config.username.clone(), mes_config.password.clone(), mes_config.database.clone()){ + Ok(service) => mes_service = service, + Err(e) =>{ + add_log(format!("连接数据库失败: {:?}", e.to_string())); + sender.send(Message::DownloadEnd(false)).unwrap(); + return; + } + } add_log("正在上传数据".to_string()); let update_result = mes_service.update_station(mes_config.work_order, label, download_type); if let Err(e) = update_result { - add_log(format!("上传失败: {:?}", e)); + add_log(format!("上传失败: {:?}", e.to_string())); sender.send(Message::DownloadEnd(false)).unwrap(); return; diff --git a/src/mes_service.rs b/src/mes_service.rs index 8985501..5be0822 100644 --- a/src/mes_service.rs +++ b/src/mes_service.rs @@ -7,13 +7,13 @@ pub(crate) struct MesService { } impl MesService { - pub fn new(ip: String, port: String, username: String, password: String, database: String) -> Self { + pub fn new(ip: String, port: String, username: String, password: String, database: String) -> Result { let url = format!( "mysql://{}:{}@{}:{}/{}", username, password, ip, port, database ); - let pool = mysql::Pool::new(url.as_str()).unwrap(); - Self { pool } + let pool = mysql::Pool::new(url.as_str())?; + Ok(Self { pool }) } pub fn get_work_orders(&self) -> Result, Error> {