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/SECSRuntimeManager.cpp |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/SECSRuntimeManager.cpp b/SourceCode/Bond/Servo/SECSRuntimeManager.cpp
index cd4d27b..ccbcf77 100644
--- a/SourceCode/Bond/Servo/SECSRuntimeManager.cpp
+++ b/SourceCode/Bond/Servo/SECSRuntimeManager.cpp
@@ -1436,6 +1436,28 @@
 	return vecResult;
 }
 
+void SECSRuntimeManager::setAllPPID(const std::vector<std::string>& vecPPIDList) {
+    std::lock_guard<std::mutex> lock(m_mutex);
+    if (m_pDB == nullptr) return;
+
+    // 开启事务
+    m_pDB->executeQuery("BEGIN TRANSACTION;");
+
+    for (size_t i = 0; i < vecPPIDList.size(); ++i) {
+        std::string safePPID = vecPPIDList[i];
+        size_t pos = 0;
+        while ((pos = safePPID.find('\'', pos)) != std::string::npos) {
+            safePPID.insert(pos, 1, '\'');
+            pos += 2;
+        }
+        std::string sql = "UPDATE EqpPPID SET PPID = '" + safePPID + "' WHERE RecipeNo = " + std::to_string(i) + ";";
+        m_pDB->executeQuery(sql);
+    }
+
+    // 提交事务
+    m_pDB->executeQuery("COMMIT;");
+}
+
 bool SECSRuntimeManager::updatePPIDForRecipe(int nRecipeNo, const std::string& strPPID) {
     std::lock_guard<std::mutex> lock(m_mutex);
     if (m_pDB == nullptr) {

--
Gitblit v1.9.3