From da9df9d46ed3fc50e0c03497bd9f76b8aa1a4595 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 14 一月 2026 15:37:48 +0800
Subject: [PATCH] 1.修复以下问题: 作业前置条件不足导致 PJ 验证失败:onPRJobMultiCreate 调 CMaster::setProcessJobs,CProcessJob::validate 要求“当前没有其它 PJ”(issue 1000),且 carrierPresent/slotUsable 必须为真。只要本地还有未结批的 PJ/CJ 或载具/槽位状态未就绪(ID 未绑、Slot 未使能),Host 发送的 CreateMultiPJ 会直接被丢弃(返回 size=0),但当前代码没有向 Host 回 ACK/NAK,Host 会误以为创建成功。
---
SourceCode/Bond/Servo/ProcessJob.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/ProcessJob.cpp b/SourceCode/Bond/Servo/ProcessJob.cpp
index 62872f1..184b298 100644
--- a/SourceCode/Bond/Servo/ProcessJob.cpp
+++ b/SourceCode/Bond/Servo/ProcessJob.cpp
@@ -290,6 +290,18 @@
return false;
}
+ bool CProcessJob::setCarrierContexts(std::string carrierId, std::vector<void*> contexts)
+ {
+ for (auto& c : m_carriers) {
+ if (c.carrierId.compare(carrierId) == 0) {
+ c.contexts = std::move(contexts);
+ return true;
+ }
+ }
+
+ return false;
+ }
+
// --------- 核心:serialize/deserialize ---------
void CProcessJob::serialize(std::ostream& os) const {
// 头
@@ -454,4 +466,44 @@
return nullptr;
}
+
+ void CProcessJob::setLotId(std::string strLotId)
+ {
+ m_strLotId = strLotId;
+ }
+
+ std::string& CProcessJob::getLotId()
+ {
+ return m_strLotId;
+ }
+
+ void CProcessJob::setProductId(std::string strProductId)
+ {
+ m_strProductId = strProductId;
+ }
+
+ std::string& CProcessJob::getProductId()
+ {
+ return m_strProductId;
+ }
+
+ void CProcessJob::setOperationId(std::string strOperationId)
+ {
+ m_strOperationId = strOperationId;
+ }
+
+ std::string& CProcessJob::getOperationId()
+ {
+ return m_strOperationId;
+ }
+
+ void CProcessJob::setPjWarp(PJWarp pjWarp)
+ {
+ m_pjWarp = pjWarp;
+ }
+
+ PJWarp& CProcessJob::getPjWarp()
+ {
+ return m_pjWarp;
+ }
}
--
Gitblit v1.9.3