在线模式订单号从数据库获取, 离线模式只处理Mac地址

This commit is contained in:
JIe 2025-03-28 09:21:13 +08:00
parent 32cfe3d7df
commit 8b1532d213
2 changed files with 24 additions and 21 deletions

View File

@ -67,7 +67,6 @@ struct MysqlConfig {
password: String, password: String,
database: String, database: String,
work_order: String, work_order: String,
order_number: String
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
enum Message { enum Message {
@ -78,7 +77,6 @@ enum Message {
PasswordChanged(String), PasswordChanged(String),
DatabaseChanged(String), DatabaseChanged(String),
WorkOrderChanged(String), WorkOrderChanged(String),
OrderNumberChanged(String),
LabelChanged(String), LabelChanged(String),
TypeSelected(DownloadType), TypeSelected(DownloadType),
OnlineChecked(bool), OnlineChecked(bool),
@ -129,10 +127,6 @@ impl MainWindow {
self.mysql_config.work_order = work_order; self.mysql_config.work_order = work_order;
Task::none() Task::none()
} }
Message::OrderNumberChanged(order_number) =>{
self.mysql_config.order_number = order_number;
Task::none()
}
Message::TypeSelected(download_type) => { Message::TypeSelected(download_type) => {
self.selection = Some(download_type); self.selection = Some(download_type);
Task::none() Task::none()
@ -247,8 +241,6 @@ impl MainWindow {
text_input("Database", &self.mysql_config.database).on_input(Message::DatabaseChanged); text_input("Database", &self.mysql_config.database).on_input(Message::DatabaseChanged);
let work_order_input = text_input("WorkOrder", &self.mysql_config.work_order) let work_order_input = text_input("WorkOrder", &self.mysql_config.work_order)
.on_input(Message::WorkOrderChanged); .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) let label_input = text_input("label", &self.label)
.on_input(Message::LabelChanged) .on_input(Message::LabelChanged)
.on_submit(Message::Start()) .on_submit(Message::Start())
@ -256,8 +248,7 @@ impl MainWindow {
let content = column![ let content = column![
row![ip_input, port_input].spacing(5), row![ip_input, port_input].spacing(5),
row![username_input, password_input].spacing(5), row![username_input, password_input].spacing(5),
row![database_input, order_number_input].spacing(5), row![database_input, work_order_input].spacing(5),
row![work_order_input].spacing(5),
row![ row![
radio( radio(
"App", "App",
@ -310,12 +301,6 @@ impl MainWindow {
} }
label = label.replace(":", ""); label = label.replace(":", "");
label = label.to_uppercase(); 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()); add_log("Label: ".to_string() + label.as_str());
std::thread::spawn(move || { std::thread::spawn(move || {
sleep(std::time::Duration::from_secs(5)); sleep(std::time::Duration::from_secs(5));
@ -339,6 +324,17 @@ impl MainWindow {
} }
} }
add_log("连接成功".to_string()); 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()); add_log("正在过站检测".to_string());
let check_result = mes_service.check_station( let check_result = mes_service.check_station(
mes_config.work_order.clone(), mes_config.work_order.clone(),
@ -463,10 +459,6 @@ impl MainWindow {
"work_order".to_string(), "work_order".to_string(),
self.mysql_config.work_order.clone().into(), 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("is_online".to_string(), self.is_online.clone().into());
config.insert( config.insert(
"selection".to_string(), "selection".to_string(),
@ -487,7 +479,6 @@ impl MainWindow {
self.mysql_config.password = config["password"].as_str().unwrap().to_string(); 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.database = config["database"].as_str().unwrap().to_string();
self.mysql_config.work_order = config["work_order"].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(); self.is_online = config["is_online"].as_bool().unwrap();
match config["selection"].as_str().unwrap() { match config["selection"].as_str().unwrap() {
"BootLoader" => { "BootLoader" => {

View File

@ -61,6 +61,18 @@ impl MesService {
} }
} }
pub fn get_order_number(&self, work_order: String)->Result<String, Error>{
let mut conn = self.pool.get_conn()?;
let order_number: Vec<String> = 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( pub fn update_station(
&self, &self,
work_order: String, work_order: String,