[REFACTOR] 實作側邊欄與儀表板多語系化,修復 UI 位移與樣式優化
All checks were successful
star-cloud-deploy-demo / deploy-demo (push) Successful in 52s

This commit is contained in:
2026-03-12 17:42:57 +08:00
parent 8ee14eaa29
commit 773396fc90
43 changed files with 1928 additions and 650 deletions

View File

@@ -8,7 +8,7 @@
### 1.1 觸發流程
1. **管理行為**:管理員在後台管理介面手動修改特定機台的貨道庫存數量。
2. **指令預備**:後端系統記錄異動請求,並在該機台的 B010 (心跳) 回應中`status` 設為 `49` (reload B017)。
2. **指令預備**:後端系統異動請求寫入 `remote_commands` 表 (type: `stock_update`, payload 含貨道編號與數量),並在該機台的 B010 (心跳) 回應中將 `status` 設為 `49` (reload B017)。
3. **機台拉取**:機台收到心跳回應中的 `49` 代碼後,主動呼叫 B017 API (`/api/app/machine/reload_msg/{workid}`)。
4. **數據同步**:機台獲取最新庫存數據並更新本地狀態。
@@ -43,11 +43,10 @@
## 4. 欄位定義與對照
| 欄位名稱 | 資料庫對應 | 說明 |
| B017 欄位 | 資料庫對應 | 說明 |
|----------|------------|------|
| `workid` | `machines.serial_no` | 機台識別序號 |
| `channelid` | `machine_slots.slot_no` | 貨道編號 |
| `stock` | `machine_slots.stock` | 該貨道的當前可用庫存 |
| `stock` | `machine_slots.stock` | 該貨道的最新庫存數量 |
---
@@ -57,9 +56,16 @@
---
## 6. 待確認事項 (To-be-confirmed)
## 6. 庫存衝突處理原則
1. **庫存衝突優先權**:當「雲端改庫存」與「現場實體銷售」同時發生時,最終庫存應以何者為準?(待主管確認)
2. **API 欄位對照**
* `workid` 是否嚴格對應 `serial_no`
* `channelid` 是否對標 `slot_no`
**以機台實際出貨為最終依據(最終一致性策略)**
* **情境**:雲端下發庫存更新(如設為 50同時機台現場發生實體銷售賣出 2 個)。
* **處理原則**:機台在本地執行 `50 - 已出貨量 = 48`,並透過後續的 B602 出貨紀錄上報給雲端,雲端以此為最終庫存數字。
* **理由**:機台掌握實際出貨資訊,強制以雲端覆蓋將導致帳面庫存與實際庫存不符,引發空貨道但系統顯示有庫存的嚴重問題。
---
## 7. 待確認事項 (已結案)
所有關鍵決策已於 2026-03-12 完成確認。