From 334b16b4abb4cbe3d1d4e4f211efd6f4468ae09f Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 19 九月 2025 15:12:52 +0800
Subject: [PATCH] 1.ControlJob和ProcessJob的中断操作,强制结批增加字符串描述原因,方便生产跟踪。

---
 SourceCode/Bond/Servo/CControlJobDlg.cpp |   85 +++++++++++++++++++++++++++---------------
 1 files changed, 54 insertions(+), 31 deletions(-)

diff --git a/SourceCode/Bond/Servo/CControlJobDlg.cpp b/SourceCode/Bond/Servo/CControlJobDlg.cpp
index 7365c3d..d388c2c 100644
--- a/SourceCode/Bond/Servo/CControlJobDlg.cpp
+++ b/SourceCode/Bond/Servo/CControlJobDlg.cpp
@@ -30,6 +30,7 @@
 
 BEGIN_MESSAGE_MAP(CControlJobDlg, CDialogEx)
     ON_WM_SIZE()
+    ON_BN_CLICKED(IDC_BUTTON_COMPLETION_BATH, &CControlJobDlg::OnBnClickedButtonCompletionBath)
 END_MESSAGE_MAP()
 
 
@@ -68,9 +69,17 @@
 
     // 鎺т欢鐘舵��
     Resize();
-    ShowGroup1(m_pControlJob == nullptr);
-    ShowGroup2(m_pControlJob != nullptr);
-    LoadData();
+
+    // 濡傛灉m_pControlJob涓虹┖锛屽彇master鐨�
+    auto* cj = m_pControlJob;
+    if (cj == nullptr) {
+        cj = theApp.m_model.getMaster().getControlJob();
+    }
+
+    ShowGroup1(cj == nullptr);
+    ShowGroup2(cj != nullptr);
+    GetDlgItem(IDC_BUTTON_COMPLETION_BATH)->EnableWindow(cj != nullptr);
+    LoadData(cj);
 
 	return TRUE;  // return TRUE unless you set the focus to a control
 				  // 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
@@ -132,38 +141,52 @@
     GetDlgItem(IDC_LIST1)->ShowWindow(bShow ? SW_SHOW : SW_HIDE);
 }
 
-void CControlJobDlg::LoadData()
+void CControlJobDlg::LoadData(SERVO::CControlJob* pControlJob)
 {
-    m_listCtrl.DeleteAllItems();
+    m_listCtrl.ClearTree();
+    if (pControlJob == nullptr) return;
 
-    if (m_pControlJob != nullptr) {
-        auto* root1 = m_listCtrl.InsertRoot({ m_pControlJob->id().c_str(), _T("ControlJob"), 
-            m_pControlJob->getStateText().c_str(), _T("") });
-        auto pjs = m_pControlJob->getPjs();
-        for (auto pj : pjs) {
-            auto* root2 = m_listCtrl.InsertChild(root1, {pj->id().c_str(),  _T("ProcessJob"),
-                pj->getStateText().c_str(), pj->recipeSpec().c_str(), _T(""), _T(""), _T("") });
-            auto cs = pj->carriers();
-            for (auto c : cs) {
-                for (auto g : c.contexts) {
-                    SERVO::CGlass* pGlass = (SERVO::CGlass*)g;
-                    if (pGlass != nullptr) {
-                        int port, slot;
-                        pGlass->getOrginPort(port, slot);
-                        std::string carrier = c.carrierId + " / Port" + std::to_string(port + 1) + " / Slot" + std::to_string(slot + 1);
-                        m_listCtrl.InsertChild(root2, { pGlass->getID().c_str(), _T("Glass"),
-                            pGlass->getStateText().c_str(), _T(""), carrier.c_str(), _T("") });
-                    }
-                    else {
-                        m_listCtrl.InsertChild(root2, { "Null", _T("Glass"), _T(""), _T(""), c.carrierId.c_str(), _T("") });
-                    }
+    auto* root1 = m_listCtrl.InsertRoot({ pControlJob->id().c_str(), _T("ControlJob"),
+            pControlJob->getStateText().c_str(), _T(""), _T(""), pControlJob->failReason().c_str()});
+    auto pjs = pControlJob->getPjs();
+    for (auto pj : pjs) {
+        auto* root2 = m_listCtrl.InsertChild(root1, {pj->id().c_str(),  _T("ProcessJob"),
+                pj->getStateText().c_str(), pj->recipeSpec().c_str(), _T(""), pj->failReason().c_str()});
+        auto cs = pj->carriers();
+        for (auto c : cs) {
+            for (auto g : c.contexts) {
+                SERVO::CGlass* pGlass = (SERVO::CGlass*)g;
+                if (pGlass != nullptr) {
+                    int port, slot;
+                    pGlass->getOrginPort(port, slot);
+                    std::string carrier = c.carrierId + " / Port" + std::to_string(port + 1) + " / Slot" + std::to_string(slot + 1);
+                    m_listCtrl.InsertChild(root2, { pGlass->getID().c_str(), _T("Glass"),
+                        pGlass->getStateText().c_str(), _T(""), carrier.c_str(), _T("") });
+                }
+                else {
+                    m_listCtrl.InsertChild(root2, { "Null", _T("Glass"), _T(""), _T(""), c.carrierId.c_str(), _T("") });
                 }
             }
-            root2->expanded = true;
         }
-        root1->expanded = true;
-
-
-        m_listCtrl.RebuildVisible();
+        root2->expanded = true;
     }
+    root1->expanded = true;
+    m_listCtrl.RebuildVisible();
+}
+
+void CControlJobDlg::OnBnClickedButtonCompletionBath()
+{
+    if (theApp.m_model.getMaster().completeControlJob("娴嬭瘯鎵嬪姩缁撴壒")) {
+        AfxMessageBox("缁撴壒瀹屾垚");
+    }
+
+    auto* cj = m_pControlJob;
+    if (cj == nullptr) {
+        cj = theApp.m_model.getMaster().getControlJob();
+    }
+
+    ShowGroup1(cj == nullptr);
+    ShowGroup2(cj != nullptr);
+    GetDlgItem(IDC_BUTTON_COMPLETION_BATH)->EnableWindow(cj != nullptr);
+    LoadData(cj);
 }

--
Gitblit v1.9.3