From 04914a9997afbbead6f8adbb9d9c40e05b2edbd1 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 17 十二月 2025 17:04:34 +0800
Subject: [PATCH] 修复调用导入工程失败 重复保存;修复分批出片逻辑

---
 mes-web/src/views/plcTest/components/MultiDeviceTest/ExecutionMonitor.vue |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/mes-web/src/views/plcTest/components/MultiDeviceTest/ExecutionMonitor.vue b/mes-web/src/views/plcTest/components/MultiDeviceTest/ExecutionMonitor.vue
index a221de2..b4dfb0c 100644
--- a/mes-web/src/views/plcTest/components/MultiDeviceTest/ExecutionMonitor.vue
+++ b/mes-web/src/views/plcTest/components/MultiDeviceTest/ExecutionMonitor.vue
@@ -128,6 +128,9 @@
           <div class="step-desc" v-if="step.retryCount > 0">
             閲嶈瘯娆℃暟锛歿{ step.retryCount }}
           </div>
+          <div class="step-desc" v-if="step.successMessage">
+            鎻愮ず锛歿{ step.successMessage }}
+          </div>
           <div class="step-desc error-message" v-if="step.errorMessage">
             <el-icon><Warning /></el-icon>
             閿欒锛歿{ step.errorMessage }}
@@ -175,6 +178,12 @@
 const sseConnecting = ref(false)
 let eventSource = null
 const baseURL = import.meta.env.VITE_API_BASE_URL || ''
+
+// 缁熶竴鐨処D姣旇緝锛岄伩鍏嶆暟瀛�/瀛楃涓蹭笉涓�鑷村鑷碨SE鏇存柊琚拷鐣�
+const isSameId = (a, b) => {
+  if (a == null || b == null) return false
+  return String(a) === String(b)
+}
 
 const fetchTasks = async () => {
   try {
@@ -259,9 +268,11 @@
     // 鐩戝惉姝ラ鏇存柊
     eventSource.addEventListener('stepUpdate', (event) => {
       try {
-        const data = JSON.parse(event.data)
+        const raw = JSON.parse(event.data)
+        // 鍚庣鍏ㄩ噺鐩戝惉鏃剁殑鏁版嵁缁撴瀯涓� { taskId, step: { ... } }锛岄渶瑕佸睍寮� step
+        const data = raw?.step ? { ...raw.step, taskId: raw.taskId || raw.step.taskId } : raw
         // 濡傛灉鏁版嵁涓寘鍚� taskId锛屾鏌ユ槸鍚﹀尮閰嶅綋鍓嶆煡鐪嬬殑浠诲姟
-        if (data.taskId && data.taskId === currentTaskId.value) {
+        if (data.taskId && isSameId(data.taskId, currentTaskId.value)) {
           updateStepFromSSE(data)
         } else if (!data.taskId) {
           // 濡傛灉娌℃湁 taskId锛屽彲鑳芥槸姝ラ鏁版嵁鐩存帴浼犻��
@@ -308,7 +319,7 @@
     return
   }
 
-  const taskIndex = tasks.value.findIndex(t => t.taskId === data.taskId)
+  const taskIndex = tasks.value.findIndex(t => isSameId(t.taskId, data.taskId))
   if (taskIndex >= 0) {
     // 鏇存柊浠诲姟 - 淇濈暀鍘熸湁瀛楁锛屽彧鏇存柊SSE浼犳潵鐨勫瓧娈�
     const existingTask = tasks.value[taskIndex]
@@ -341,7 +352,7 @@
   if (!data) return
   
   // 濡傛灉鏁版嵁涓寘鍚� taskId锛屾鏌ユ槸鍚﹀尮閰嶅綋鍓嶆煡鐪嬬殑浠诲姟
-  if (data.taskId && data.taskId !== currentTaskId.value) {
+  if (data.taskId && !isSameId(data.taskId, currentTaskId.value)) {
     return
   }
 
@@ -367,6 +378,7 @@
       endTime: data.endTime ? new Date(data.endTime) : existingStep.endTime,
       durationMs: data.durationMs !== undefined ? data.durationMs : existingStep.durationMs,
       retryCount: data.retryCount !== undefined ? data.retryCount : existingStep.retryCount,
+      successMessage: data.successMessage !== undefined ? data.successMessage : existingStep.successMessage,
       errorMessage: data.errorMessage || existingStep.errorMessage
     }
   } else if (data.stepOrder !== undefined) {

--
Gitblit v1.8.0