1. 優化「出貨紀錄」介面,重新排列欄位優先級並移除冗餘的機台流水號。 2. 統一出貨紀錄中的商品與貨道樣式,與取貨碼模組視覺語言同步。 3. 修正出貨紀錄搜尋邏輯,支援商品名稱與貨道編號模糊搜尋。 4. 修正「訂單詳情」側滑面板中的金額顯示(修正 price/subtotal 映射)。 5. 補強訂單詳情的出貨狀態 (dispense_status) 標籤顯示邏輯。 6. 將出貨紀錄中的「數量」表頭修正為「金額」,確保與 MQTT 協議回傳資料語意一致。 7. 更新多語系檔,新增搜尋欄位 placeholder 與相關 UI 標籤翻譯。 8. 新增發票資料表 machine_time 欄位遷移檔,以完整記錄機台開立時間。
62 lines
1.7 KiB
PHP
62 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Jobs\Transaction;
|
|
|
|
use App\Services\Transaction\TransactionService;
|
|
use Illuminate\Bus\Queueable;
|
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
use Illuminate\Foundation\Bus\Dispatchable;
|
|
use Illuminate\Queue\InteractsWithQueue;
|
|
use Illuminate\Queue\SerializesModels;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class ProcessDispenseRecord implements ShouldQueue
|
|
{
|
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
|
|
protected $data;
|
|
|
|
/**
|
|
* Create a new job instance.
|
|
*/
|
|
public function __construct(array $data)
|
|
{
|
|
$this->data = $data;
|
|
}
|
|
|
|
/**
|
|
* Execute the job.
|
|
*/
|
|
public function handle(\App\Services\Transaction\TransactionService $transactionService, \App\Services\Machine\MqttService $mqttService): void
|
|
{
|
|
$serialNo = $this->data['serial_no'] ?? 'unknown';
|
|
$orderNo = $this->data['order_no'] ?? 'N/A';
|
|
|
|
try {
|
|
$transactionService->recordDispense($this->data);
|
|
|
|
// 發送成功回饋 (ACK)
|
|
$mqttService->pushCommand($serialNo, 'dispense_ack', [
|
|
'order_no' => $orderNo,
|
|
'status' => 'success',
|
|
'message' => 'Processed successfully'
|
|
], $orderNo);
|
|
|
|
} catch (\Exception $e) {
|
|
Log::error("Failed to record dispense for machine {$serialNo}: " . $e->getMessage(), [
|
|
'data' => $this->data,
|
|
'exception' => $e
|
|
]);
|
|
|
|
// 發送失敗回饋 (ACK)
|
|
$mqttService->pushCommand($serialNo, 'dispense_ack', [
|
|
'order_no' => $orderNo,
|
|
'status' => 'error',
|
|
'message' => $e->getMessage()
|
|
], $orderNo);
|
|
|
|
throw $e;
|
|
}
|
|
}
|
|
}
|