From 0026ea3b1a6588f3e40b8276162f54b2a22bc7ae Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期一, 19 一月 2026 14:32:27 +0800
Subject: [PATCH] 1.修复 : 多 PJ 支持仍是单槽实现:isProcessJobsEmpty/validate 仍只允许 1 个 PJ/CJ;Host 一次下多 PJ 或运行中追加 PJ 会被拒绝/无明确反馈。需要:协议上明示只支持 1,或补齐 ACK/NAK 与队列管理、PJobSpace 动态更新。
---
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