Przeglądaj źródła

新结构解析

晋江
OCEAN 2 miesięcy temu
rodzic
commit
bca0eb6cdf
3 zmienionych plików z 250 dodań i 245 usunięć
  1. +250
    -245
      tcp_server/src/main.rs
  2. BIN
      tcp_server/target/debug/tcp_server.exe
  3. BIN
      tcp_server/target/debug/tcp_server.pdb

+ 250
- 245
tcp_server/src/main.rs Wyświetl plik

@@ -540,7 +540,7 @@ async fn insert_instrument(client: &tokio_postgres::Client, info: &InstrumentInf
// ID 不存在,执行插入
client.execute(
"INSERT INTO public.hy_instrument (id, laboratoryid, name, instrumentcode, informationid, specification, remark)
VALUES ($1, $2, $3, $4, $5, $6, $7)",
OVERRIDING SYSTEM VALUE VALUES ($1, $2, $3, $4, $5, $6, $7)",
&[
&info.id, &info.laboratoryid, &info.name, &info.instrumentcode,
&info.informationid, &info.specification, &info.remark,
@@ -578,7 +578,7 @@ async fn insert_information(client: &tokio_postgres::Client, info: &InformationI
// ID 不存在,执行插入
client.execute(
"INSERT INTO public.hy_information (id, hy_name, flag, laboratory_id, analysistypeid)
VALUES ($1, $2, $3, $4, $5)",
OVERRIDING SYSTEM VALUE VALUES ($1, $2, $3, $4, $5)",
&[
&info.id, &info.hy_name, &info.flag, &info.laboratory_id,
&info.analysistypeid,
@@ -650,7 +650,7 @@ async fn insert_record(client: &tokio_postgres::Client, info: &RecordInfo) -> Re
qnet_ar_mj_kg, qnet_ar_j_cal, v, aar,
qnet_ar, qnet_ar1, crc, st_daf, cad,
cd, isauto, hy_type, isnormal
) VALUES (
) OVERRIDING SYSTEM VALUE VALUES (
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10,
$11, $12, $13, $14, $15, $16, $17, $18, $19, $20,
$21, $22, $23, $24, $25, $26, $27, $28, $29, $30,
@@ -701,7 +701,7 @@ async fn insert_cytask(client: &tokio_postgres::Client, info: &HyCyTask) -> Resu
// ID 不存在,执行插入
client.execute(
"INSERT INTO public.hy_cytask (id, task_code, task_type, task_status, create_time, create_user, remark)
VALUES ($1, $2, $3, $4, $5, $6, $7)",
OVERRIDING SYSTEM VALUE VALUES ($1, $2, $3, $4, $5, $6, $7)",
&[
&info.id, &info.task_code, &info.task_type, &info.task_status,
&info.create_time, &info.create_user, &info.remark,
@@ -739,7 +739,7 @@ async fn insert_allot(client: &tokio_postgres::Client, info: &HyAllot) -> Result
// ID 不存在,执行插入
client.execute(
"INSERT INTO public.hy_allot (id, userid, username, informationid, allottime, hy_code, hy_type, hy_method, hy_quest)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)",
OVERRIDING SYSTEM VALUE VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)",
&[
&info.id, &info.userid, &info.username, &info.informationid, &info.allottime,
&info.hy_code, &info.hy_type, &info.hy_method, &info.hy_quest,
@@ -1038,7 +1038,7 @@ async fn insert_material_analysis_type(client: &tokio_postgres::Client, info: &H

// ID 不存在,执行插入
client.execute(
"INSERT INTO public.hy_materialanalysis_type (id, name, flag, sort, createtime, createuser)
"INSERT INTO public.hy_materialanalysis_type (id, name, flag, sort, createtime, createuser) OVERRIDING SYSTEM VALUE
VALUES ($1, $2, $3, $4, $5, $6)",
&[&info.id, &info.name, &info.flag, &info.sort, &info.createtime, &info.createuser],
).await?;
@@ -1073,8 +1073,8 @@ async fn insert_material_detail(client: &tokio_postgres::Client, info: &HyMateri

// ID 不存在,执行插入
client.execute(
"INSERT INTO public.hy_materialdetail (id, name, flag, sort, createtime, createuser, analysistypeid, materialid)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)",
"INSERT INTO public.hy_materialdetail (id, name, flag, sort, createtime, createuser, analysistypeid, materialid) OVERRIDING SYSTEM VALUE VALUES
($1, $2, $3, $4, $5, $6, $7, $8)",
&[
&info.id, &info.name, &info.flag, &info.sort, &info.createtime,
&info.createuser, &info.analysistypeid, &info.materialid
@@ -1108,7 +1108,7 @@ async fn insert_norm(client: &tokio_postgres::Client, info: &HyNorm) -> Result<(

// ID 不存在,执行插入
client.execute(
"INSERT INTO public.hy_norm (id, norm_id, zbvalues, itemdetail_id, hy_user, checktime, explain)
"INSERT INTO public.hy_norm (id, norm_id, zbvalues, itemdetail_id, hy_user, checktime, explain) OVERRIDING SYSTEM VALUE
VALUES ($1, $2, $3, $4, $5, $6, $7)",
&[&info.id, &info.norm_id, &info.zbvalues, &info.itemdetail_id, &info.hy_user, &info.checktime, &info.explain],
).await?;
@@ -1213,281 +1213,286 @@ async fn handle_client(socket: &mut TcpStream, client: &tokio_postgres::Client)

let result = if let Ok(json) = serde_json::from_str::<serde_json::Value>(&data) {
if let Some(table_name) = json.get("table_name").and_then(|v| v.as_str()) {
match table_name {
"hy_instrument" => {
if let Ok(info) = serde_json::from_str::<InstrumentInfo>(&data) {
println!("接收到仪器信息: {:?}", info);
match insert_instrument(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入仪器信息失败: {}", e);
false
if let Some(data_str) = json.get("data").and_then(|v| v.as_str()) {
match table_name {
"hy_instrument" => {
if let Ok(info) = serde_json::from_str::<InstrumentInfo>(data_str) {
println!("接收到仪器信息: {:?}", info);
match insert_instrument(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入仪器信息失败: {}", e);
false
}
}
} else {
eprintln!("解析仪器信息失败");
false
}
} else {
eprintln!("解析仪器信息失败");
false
}
},
"hy_information" => {
if let Ok(info) = serde_json::from_str::<InformationInfo>(&data) {
println!("接收到分析信息: {:?}", info);
match insert_information(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入分析信息失败: {}", e);
false
},
"hy_information" => {
if let Ok(info) = serde_json::from_str::<InformationInfo>(data_str) {
println!("接收到分析信息: {:?}", info);
match insert_information(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入分析信息失败: {}", e);
false
}
}
} else {
eprintln!("解析分析信息失败");
false
}
} else {
eprintln!("解析分析信息失败");
false
}
},
"hy_record" => {
if let Ok(info) = serde_json::from_str::<RecordInfo>(&data) {
println!("接收到记录信息: {:?}", info);
match insert_record(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入记录信息失败: {}", e);
false
},
"hy_record" => {
if let Ok(info) = serde_json::from_str::<RecordInfo>(data_str) {
println!("接收到记录信息: {:?}", info);
match insert_record(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入记录信息失败: {}", e);
false
}
}
} else {
eprintln!("解析记录信息失败");
false
}
} else {
eprintln!("解析记录信息失败");
false
}
},
"hy_cytask" => {
if let Ok(info) = serde_json::from_str::<HyCyTask>(&data) {
println!("接收到采样任务信息: {:?}", info);
match insert_cytask(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入采样任务信息失败: {}", e);
false
},
"hy_cytask" => {
if let Ok(info) = serde_json::from_str::<HyCyTask>(data_str) {
println!("接收到采样任务信息: {:?}", info);
match insert_cytask(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入采样任务信息失败: {}", e);
false
}
}
} else {
eprintln!("解析采样任务信息失败");
false
}
} else {
eprintln!("解析采样任务信息失败");
false
}
},
"hy_allot" => {
if let Ok(info) = serde_json::from_str::<HyAllot>(&data) {
println!("接收到分配信息: {:?}", info);
match insert_allot(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入分配信息失败: {}", e);
false
},
"hy_allot" => {
if let Ok(info) = serde_json::from_str::<HyAllot>(data_str) {
println!("接收到分配信息: {:?}", info);
match insert_allot(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入分配信息失败: {}", e);
false
}
}
} else {
eprintln!("解析分配信息失败");
false
}
} else {
eprintln!("解析分配信息失败");
false
}
},
"hy_sample_collection_detail" => {
if let Ok(info) = serde_json::from_str::<HySampleCollectionDetail>(&data) {
println!("接收到样品采集明细信息: {:?}", info);
match insert_sample_collection_detail(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入样品采集明细信息失败: {}", e);
false
},
"hy_sample_collection_detail" => {
if let Ok(info) = serde_json::from_str::<HySampleCollectionDetail>(data_str) {
println!("接收到样品采集明细信息: {:?}", info);
match insert_sample_collection_detail(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入样品采集明细信息失败: {}", e);
false
}
}
} else {
eprintln!("解析样品采集明细信息失败");
false
}
} else {
eprintln!("解析样品采集明细信息失败");
false
}
},
"hy_spotcheck" => {
if let Ok(info) = serde_json::from_str::<HySpotcheck>(&data) {
println!("接收到抽查信息: {:?}", info);
match insert_spotcheck(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入抽查信息失败: {}", e);
false
},
"hy_spotcheck" => {
if let Ok(info) = serde_json::from_str::<HySpotcheck>(data_str) {
println!("接收到抽查信息: {:?}", info);
match insert_spotcheck(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入抽查信息失败: {}", e);
false
}
}
} else {
eprintln!("解析抽查信息失败");
false
}
} else {
eprintln!("解析抽查信息失败");
false
}
},
"hy_sample_delivery" => {
if let Ok(info) = serde_json::from_str::<HySampleDelivery>(&data) {
println!("接收到样品交付信息: {:?}", info);
match insert_sample_delivery(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入样品交付信息失败: {}", e);
false
},
"hy_sample_delivery" => {
if let Ok(info) = serde_json::from_str::<HySampleDelivery>(data_str) {
println!("接收到样品交付信息: {:?}", info);
match insert_sample_delivery(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入样品交付信息失败: {}", e);
false
}
}
} else {
eprintln!("解析样品交付信息失败");
false
}
} else {
eprintln!("解析样品交付信息失败");
false
}
},
"hy_task" => {
if let Ok(info) = serde_json::from_str::<HyTask>(&data) {
println!("接收到任务信息: {:?}", info);
match insert_task(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入任务信息失败: {}", e);
false
},
"hy_task" => {
if let Ok(info) = serde_json::from_str::<HyTask>(data_str) {
println!("接收到任务信息: {:?}", info);
match insert_task(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入任务信息失败: {}", e);
false
}
}
} else {
eprintln!("解析任务信息失败");
false
}
} else {
eprintln!("解析任务信息失败");
false
}
},
"hy_warmhumid" => {
if let Ok(info) = serde_json::from_str::<HyWarmHumid>(&data) {
println!("接收到温湿度信息: {:?}", info);
match insert_warmhumid(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入温湿度信息失败: {}", e);
false
},
"hy_warmhumid" => {
if let Ok(info) = serde_json::from_str::<HyWarmHumid>(data_str) {
println!("接收到温湿度信息: {:?}", info);
match insert_warmhumid(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入温湿度信息失败: {}", e);
false
}
}
} else {
eprintln!("解析温湿度信息失败");
false
}
} else {
eprintln!("解析温湿度信息失败");
false
}
},
"hy_weight_input" => {
if let Ok(info) = serde_json::from_str::<HyWeightInput>(&data) {
println!("接收到重量输入信息: {:?}", info);
match insert_weight_input(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入重量输入信息失败: {}", e);
false
},
"hy_weight_input" => {
if let Ok(info) = serde_json::from_str::<HyWeightInput>(data_str) {
println!("接收到重量输入信息: {:?}", info);
match insert_weight_input(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入重量输入信息失败: {}", e);
false
}
}
} else {
eprintln!("解析重量输入信息失败");
false
}
} else {
eprintln!("解析重量输入信息失败");
false
}
},
"hy_laboratoryinstrument" => {
if let Ok(info) = serde_json::from_str::<HyLaboratoryInstrument>(&data) {
println!("接收到实验室仪器信息: {:?}", info);
match insert_laboratory_instrument(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入实验室仪器信息失败: {}", e);
false
},
"hy_laboratoryinstrument" => {
if let Ok(info) = serde_json::from_str::<HyLaboratoryInstrument>(data_str) {
println!("接收到实验室仪器信息: {:?}", info);
match insert_laboratory_instrument(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入实验室仪器信息失败: {}", e);
false
}
}
} else {
eprintln!("解析实验室仪器信息失败");
false
}
} else {
eprintln!("解析实验室仪器信息失败");
false
}
},
"hy_materialanalysis_type" => {
if let Ok(info) = serde_json::from_str::<HyMaterialAnalysisType>(&data) {
println!("接收到物料分析类型信息: {:?}", info);
match insert_material_analysis_type(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入物料分析类型信息失败: {}", e);
false
},
"hy_materialanalysis_type" => {
if let Ok(info) = serde_json::from_str::<HyMaterialAnalysisType>(data_str) {
println!("接收到物料分析类型信息: {:?}", info);
match insert_material_analysis_type(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入物料分析类型信息失败: {}", e);
false
}
}
} else {
eprintln!("解析物料分析类型信息失败");
false
}
} else {
eprintln!("解析物料分析类型信息失败");
false
}
},
"hy_materialdetail" => {
if let Ok(info) = serde_json::from_str::<HyMaterialDetail>(&data) {
println!("接收到物料详细信息: {:?}", info);
match insert_material_detail(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入物料详细信息失败: {}", e);
false
},
"hy_materialdetail" => {
if let Ok(info) = serde_json::from_str::<HyMaterialDetail>(data_str) {
println!("接收到物料详细信息: {:?}", info);
match insert_material_detail(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入物料详细信息失败: {}", e);
false
}
}
} else {
eprintln!("解析物料详细信息失败");
false
}
} else {
eprintln!("解析物料详细信息失败");
false
}
},
"hy_norm" => {
if let Ok(info) = serde_json::from_str::<HyNorm>(&data) {
println!("接收到标准信息: {:?}", info);
match insert_norm(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入标准信息失败: {}", e);
false
},
"hy_norm" => {
if let Ok(info) = serde_json::from_str::<HyNorm>(data_str) {
println!("接收到标准信息: {:?}", info);
match insert_norm(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入标准信息失败: {}", e);
false
}
}
} else {
eprintln!("解析标准信息失败");
false
}
} else {
eprintln!("解析标准信息失败");
false
}
},
"hy_fullwatersample" => {
if let Ok(info) = serde_json::from_str::<HyFullWaterSample>(&data) {
println!("接收到全水样品信息: {:?}", info);
match insert_fullwatersample(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入全水样品信息失败: {}", e);
false
},
"hy_fullwatersample" => {
if let Ok(info) = serde_json::from_str::<HyFullWaterSample>(data_str) {
println!("接收到全水样品信息: {:?}", info);
match insert_fullwatersample(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入全水样品信息失败: {}", e);
false
}
}
} else {
eprintln!("解析全水样品信息失败");
false
}
} else {
eprintln!("解析全水样品信息失败");
false
}
},
"hy_informationnorm" => {
if let Ok(info) = serde_json::from_str::<HyInformationNorm>(&data) {
println!("接收到化验信息规范信息: {:?}", info);
match insert_informationnorm(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入化验信息规范信息失败: {}", e);
false
},
"hy_informationnorm" => {
if let Ok(info) = serde_json::from_str::<HyInformationNorm>(data_str) {
println!("接收到化验信息规范信息: {:?}", info);
match insert_informationnorm(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入化验信息规范信息失败: {}", e);
false
}
}
} else {
eprintln!("解析化验信息规范信息失败");
false
}
} else {
eprintln!("解析化验信息规范信息失败");
false
}
},
"hy_itemdetail" => {
if let Ok(info) = serde_json::from_str::<HyItemDetail>(&data) {
println!("接收到化验项目明细信息: {:?}", info);
match insert_itemdetail(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入化验项目明细信息失败: {}", e);
false
},
"hy_itemdetail" => {
if let Ok(info) = serde_json::from_str::<HyItemDetail>(data_str) {
println!("接收到化验项目明细信息: {:?}", info);
match insert_itemdetail(client, &info).await {
Ok(_) => true,
Err(e) => {
eprintln!("插入化验项目明细信息失败: {}", e);
false
}
}
} else {
eprintln!("解析化验项目明细信息失败");
false
}
} else {
eprintln!("解析化验项目明细信息失败");
},
_ => {
eprintln!("未知的表名: {}", table_name);
false
}
},
_ => {
eprintln!("未知的表名: {}", table_name);
false
}
} else {
eprintln!("JSON数据中缺少data字段");
false
}
} else {
eprintln!("JSON数据中缺少table_name字段");


BIN
tcp_server/target/debug/tcp_server.exe Wyświetl plik


BIN
tcp_server/target/debug/tcp_server.pdb Wyświetl plik


Ładowanie…
Anuluj
Zapisz