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