diff --git a/src/main.rs b/src/main.rs index b1f2750..6da6b6f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -67,7 +67,6 @@ struct MysqlConfig { password: String, database: String, work_order: String, - order_number: String } #[derive(Debug, Clone)] enum Message { @@ -78,7 +77,6 @@ enum Message { PasswordChanged(String), DatabaseChanged(String), WorkOrderChanged(String), - OrderNumberChanged(String), LabelChanged(String), TypeSelected(DownloadType), OnlineChecked(bool), @@ -129,10 +127,6 @@ impl MainWindow { self.mysql_config.work_order = work_order; Task::none() } - Message::OrderNumberChanged(order_number) =>{ - self.mysql_config.order_number = order_number; - Task::none() - } Message::TypeSelected(download_type) => { self.selection = Some(download_type); Task::none() @@ -247,8 +241,6 @@ impl MainWindow { text_input("Database", &self.mysql_config.database).on_input(Message::DatabaseChanged); let work_order_input = text_input("WorkOrder", &self.mysql_config.work_order) .on_input(Message::WorkOrderChanged); - let order_number_input = text_input("OrderNumber", &self.mysql_config.order_number) - .on_input(Message::OrderNumberChanged); let label_input = text_input("label", &self.label) .on_input(Message::LabelChanged) .on_submit(Message::Start()) @@ -256,8 +248,7 @@ impl MainWindow { let content = column![ row![ip_input, port_input].spacing(5), row![username_input, password_input].spacing(5), - row![database_input, order_number_input].spacing(5), - row![work_order_input].spacing(5), + row![database_input, work_order_input].spacing(5), row![ radio( "App", @@ -310,12 +301,6 @@ impl MainWindow { } label = label.replace(":", ""); label = label.to_uppercase(); - label = self.mysql_config.order_number.clone() + &label[label.len() - 6..]; - if label.contains(":"){ - add_log("Label不合法".to_string()); - self.label = "".to_string(); - return; - } add_log("Label: ".to_string() + label.as_str()); std::thread::spawn(move || { sleep(std::time::Duration::from_secs(5)); @@ -339,6 +324,17 @@ impl MainWindow { } } add_log("连接成功".to_string()); + match mes_service.get_order_number(mes_config.work_order.clone()){ + Ok(batch) => { + label = batch + &label[label.len() - 6..]; + add_log("获取订单号成功".to_string()); + }, + Err(e) =>{ + add_log(e.to_string()); + sender.send(Message::DownloadEnd((label, false))).unwrap(); + return; + } + } add_log("正在过站检测".to_string()); let check_result = mes_service.check_station( mes_config.work_order.clone(), @@ -463,10 +459,6 @@ impl MainWindow { "work_order".to_string(), self.mysql_config.work_order.clone().into(), ); - config.insert( - "order_number".to_string(), - self.mysql_config.order_number.clone().into(), - ); config.insert("is_online".to_string(), self.is_online.clone().into()); config.insert( "selection".to_string(), @@ -487,7 +479,6 @@ impl MainWindow { self.mysql_config.password = config["password"].as_str().unwrap().to_string(); self.mysql_config.database = config["database"].as_str().unwrap().to_string(); self.mysql_config.work_order = config["work_order"].as_str().unwrap().to_string(); - self.mysql_config.order_number = config["order_number"].as_str().unwrap().to_string(); self.is_online = config["is_online"].as_bool().unwrap(); match config["selection"].as_str().unwrap() { "BootLoader" => { diff --git a/src/mes_service.rs b/src/mes_service.rs index f66c782..54236e7 100644 --- a/src/mes_service.rs +++ b/src/mes_service.rs @@ -61,6 +61,18 @@ impl MesService { } } + pub fn get_order_number(&self, work_order: String)->Result{ + let mut conn = self.pool.get_conn()?; + let order_number: Vec = conn.query(format!( + "SELECT `Batch` FROM wisun_ordertables WHERE `OrderId` = '{work_order}'" + ))?; + if order_number.is_empty() { + Err(Error::msg("No order number found")) + }else{ + Ok(order_number[0].clone()) + } + } + pub fn update_station( &self, work_order: String,