From 53b5d44fde90681ff9038296682f1683249affdd Mon Sep 17 00:00:00 2001 From: twsystem1004 Date: Fri, 17 Jul 2026 08:38:00 +0000 Subject: [PATCH] =?UTF-8?q?fix(remote):=20ACK=20=E7=9A=84=20message=20?= =?UTF-8?q?=E5=AF=AB=E5=85=A5=20note=EF=BC=8C=E5=90=A6=E5=89=87=E5=A4=B1?= =?UTF-8?q?=E6=95=97=E5=8E=9F=E5=9B=A0=E8=88=87=E6=9F=A5=E8=A9=A2=E7=B5=90?= =?UTF-8?q?=E6=9E=9C=E9=83=BD=E8=A2=AB=E4=B8=9F=E6=A3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ProcessCommandAck 的通用路徑原本只把 result/stock 併進 payload,未保存機台 回報的 message,導致: - 指令失敗時 note 為空,後台看不到原因(Machine busy / 下位機無回應 / Unknown command…),無從診斷。 - query_jam 以 message 回傳查詢結果 JSON {"jam":[2,5],"belt":[]}, 在指令中心永遠顯示不出來。 改為一律將 message 寫入 note;機台未回 message 時保留既有 note, 避免覆蓋 Superseded 等既有提示。update_app 的 progress 分支不受影響。 --- app/Jobs/Machine/ProcessCommandAck.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/Jobs/Machine/ProcessCommandAck.php b/app/Jobs/Machine/ProcessCommandAck.php index a985b2a..59d4201 100644 --- a/app/Jobs/Machine/ProcessCommandAck.php +++ b/app/Jobs/Machine/ProcessCommandAck.php @@ -140,9 +140,16 @@ class ProcessCommandAck implements ShouldQueue } } + // 機台回報的 message 一律寫入 note: + // - 失敗時是原因(Machine busy / 下位機無回應 / Unknown command…),沒存就無從診斷。 + // - query_jam 的 message 是查詢結果 JSON {"jam":[2,5],"belt":[]},指令中心據此渲染。 + // 機台沒回 message 時保留既有 note(如 Superseded 提示),不覆蓋。 + $ackMessage = $this->payload['message'] ?? null; + $command->update([ 'status' => $status, 'executed_at' => now(), + 'note' => ($ackMessage !== null && $ackMessage !== '') ? $ackMessage : $command->note, 'payload' => array_merge($command->payload, $payloadUpdates), ]);