From 331f447bb0e5eccf0b3161ab287c1372b14b8480 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 08 八月 2025 11:53:58 +0800
Subject: [PATCH] 1.增加千传计数,保存计数,重启软件时恢复; 2.千传测试模式,打印相关日志,方便后期提取,用于统计; 3.千传模式时烘烤两腔体都要进入; 4.千传模式时,Fliper到Bonder修改为用手臂2取料; 5.修复千传模式不计运行时的问题; 6.千传模式,最后收料强制放入第一层; 6.修复Buf, 当任务未生成(在符合条件后仍有1秒间隙)而机器单元发送FetchOutJob时,数据检验失败的问题,增加Sleep, 缩小间隙;

---
 SourceCode/Bond/Servo/RecipeManager.cpp |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/SourceCode/Bond/Servo/RecipeManager.cpp b/SourceCode/Bond/Servo/RecipeManager.cpp
index 465c1af..e0a186b 100644
--- a/SourceCode/Bond/Servo/RecipeManager.cpp
+++ b/SourceCode/Bond/Servo/RecipeManager.cpp
@@ -220,7 +220,6 @@
 
         for (const auto& dev : devs) {
             DeviceRecipe dr;
-            dr.strPPID = info.strPPID;
             try {
                 dr.nDeviceID = std::stoi(dev[0]);
                 dr.strDeviceName = dev[1];
@@ -235,6 +234,29 @@
         recipes.push_back(info);
     }
 
+    return recipes;
+}
+
+std::vector<RecipeInfo> RecipeManager::getRecipesByKeyword(const std::string& keyword) {
+    std::vector<RecipeInfo> recipes;
+    if (!m_pDB || keyword.empty()) {
+        return recipes;
+    }
+
+    std::ostringstream query;
+    query << "SELECT ppid, description, create_time FROM recipes "
+        << "WHERE ppid LIKE '%" << keyword << "%' OR description LIKE '%" << keyword << "%';";
+
+    auto rows = m_pDB->fetchResults(query.str());
+    for (const auto& row : rows) {
+        if (row.size() >= 3) {
+            RecipeInfo info;
+            info.strPPID = row[0];
+            info.strDescription = row[1];
+            info.strCreateTime = row[2];
+            recipes.push_back(info);
+        }
+    }
     return recipes;
 }
 
@@ -271,7 +293,6 @@
     auto devs = m_pDB->fetchResults("SELECT device_id, device_name, recipe_id FROM recipe_devices WHERE ppid = '" + ppid + "';");
     for (const auto& dev : devs) {
         DeviceRecipe dr;
-        dr.strPPID = ppid;
         try {
             dr.nDeviceID = std::stoi(dev[0]);
             dr.strDeviceName = dev[1];
@@ -425,8 +446,8 @@
     recipe.strDescription = "Main Board Burn-in";
 
     recipe.vecDeviceList = {
-        {1, 101, "P1001","Burner A"},
-        {2, 102, "P1001", "Burner B"}
+        {1, 101, "Burner A"},
+        {2, 102, "Burner B"}
     };
 
     addRecipe(recipe);
@@ -463,7 +484,6 @@
         std::getline(ss, description, ',');
         std::getline(ss, createTime, ',');
 
-        dev.strPPID = ppid;
         auto& recipe = recipeMap[ppid];
         recipe.strPPID = ppid;
         recipe.strDescription = description;

--
Gitblit v1.9.3