sky121113
|
bfaf0e7317
|
[FIX] OTA 更新進度 ACK 不應視為指令終態
1. ProcessCommandAck 新增 OTA 例外處理:當 command_type 為 update_app 且 result 為 "progress" 時,視為過程回報而非終態。
2. 進度訊息(如「Downloading 45%」「Installing...」)僅寫入 note 供後台檢視,指令維持 pending 狀態。
3. 避免 APK 下載/安裝長時程作業在「剛開始下載」即被誤標為完成,與機台實際版本不符。
4. 保留等待最終 success/failed ACK 的判定流程,並補上對應的 Log 記錄。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 19:59:15 +08:00 |
|
sky121113
|
779c59138f
|
[FEAT] 商品與機台多語系架構,並補上系統設定同步操作
1. 新增 config/locales.php:定義 11 種系統支援語系白名單(原文+中文註記)、每台機台上限 5 種與 fallback (zh_TW)。
2. Company 新增 activeLocalesFor()/activeLocales():計算公司所有機台已開語系的聯集(去重、依白名單排序、保底 zh_TW),加快取與 forgetActiveLocales() 失效機制。
3. products 新增 spec_dictionary_key 欄位(migration);Product 新增 localized_spec accessor 與 specTranslations 關聯,商品規格比照名稱支援多語系。
4. ProductController 商品建立/更新改收 names 與 specs 物件,寫入 translations(group=product/product_spec),既有商品首次編輯補建 spec key,刪除時一併清除規格翻譯。
5. ProductCatalogService(B012)保留既有 t060v01_en/_jp 欄位,新增 t060v01_i18n/t060v03_i18n locale map,依公司語系聯集輸出並回退 zh_TW,確保線上舊 App 相容。
6. 機台系統設定(updateSystemSettings)新增 languages 顯示語系驗證與寫入(最多 5 種、白名單、去重,僅系統管理員),異動時失效語系聯集快取並重建商品目錄。
7. B014(getSettings)新增 LangSet 下發機台顯示語系(Languages 有序清單+Default 預設)。
8. 商品建立/編輯頁名稱與規格改為多語系 Tab(讀公司機台語系聯集、完成度標記),新增共用元件 product-locale-tabs;機台系統設定彈窗新增顯示語系勾選 UI(限 5 選、預設標記)。
9. 三語系 JSON(zh_TW/en/ja)新增 5 組對齊鍵並維持字母排序。
10. 同步更新文件:docs/API/product_multilingual_spec.md(規格書)、api-technical-specs SKILL.md(B012 i18n/B014 LangSet)、config/api-docs.php(B012/B014 範例與欄位)。
11. 系統設定同步:新增 sync-settings 路由與 update_settings 指令類型,ProcessCommandAck 與遠端指令歷史(remote index/tab-history)支援 update_settings 標籤,機台系統設定頁新增「同步設定」操作按鈕,並補 B016 回寫測試。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-15 09:00:10 +08:00 |
|
sky121113
|
7579a0b5be
|
[FEAT] 調整環境溫度上報文檔順序與機台硬體事件日誌歸類
1. 文件調整:將 config/api-docs.php 中的「機台環境溫度上報 (mqtt-ambient-temp-report)」MQTT API 區塊位置向上移至「機台硬體事件上報 (mqtt-event)」上方。
2. 日誌歸類:修改 ProcessMachineEvent.php,將機台硬體事件 (event) 日誌寫入資料庫時的 type 從 'status' (機台狀態) 改為 'ambient_temp' (環境溫度回傳),以直接顯示於「環境溫度回傳」Tab。
|
2026-06-04 12:00:54 +08:00 |
|
sky121113
|
953581db38
|
[FEAT] 新增環境溫度上限監測與遠端風扇指令控制功能
1. 資料庫移轉:新增機台環境溫度、環境溫度上限設定,以及是否啟用環境溫度監測等欄位。
2. 後端核心:更新 Machine Model 與 MachineController,實作機台環境溫度設定的更新與歷史日誌 Ajax API。
3. MQTT 佇列:於 ListenMqttQueue 指令與 ProcessAmbientTemp Job 實作機台上報環境溫度的接收與寫入,並加入 Redis 快取防止重複日誌洗版。
4. 遠端指令:擴充 RemoteController 並於指令中心實作 'fanon'、'fanoff'、'fanauto' 與 'ambient_temp_limit' (環境溫度上限) 指令下發。
5. 前端頁面:於機台列表加入「環境溫度上限」微調計數器 UI,並整合 ApexCharts 折線圖展示溫度趨勢;更新遠端控制中心按鈕與歷史篩選器。
6. 多語系:同步更新並完美對齊 'zh_TW.json'、'en.json' 與 'ja.json',遵循字母 ksort 排序與斜線不逸出規範。
|
2026-06-04 11:45:48 +08:00 |
|
sky121113
|
9e3eb8944b
|
[FEAT] 新增溫控感測器離散事件接收處理機制與文件同步
1. [FEAT] 新增 App/Jobs/Machine/ProcessMachineEvent.php 用以非同步處理 machine/{serial_no}/event 事件,將收到的風扇狀態(fanon/fanoff)記錄在機台狀態日誌中。
2. [FEAT] 修改 ListenMqttQueue.php 支援 event 類型的 MQTT 事件分派路由。
3. [FEAT] 更新 config/api-docs.php 規格文件,將原本在 status 主題的風扇說明移去,並新增獨立的 event (機台硬體事件上報) 主題文件。
4. [FIX] 更新多語系資源檔,新增 fanon 與 fanoff 扁平鍵對譯並進行 ksort 排序與去逸出美化。
|
2026-06-02 14:19:48 +08:00 |
|
sky121113
|
205da14e94
|
[FEAT] 優化溫度告警狀態轉移邏輯與完善機台專屬通知設定 UI
1. 修正 `ProcessHeartbeat.php` 溫度告警判定邏輯,避免溫度在「高低溫異常狀態」直接轉換時,誤發含有異常溫度的「恢復正常」通知。
2. 實作機台層級自訂通知類型 (`notify_types_mode`) 功能,支援繼承全域設定或獨立指派通知類型(連線、溫度、硬體異常)。
3. 優化前端 UI 邏輯,當選擇自訂通知且包含「溫度告警」時,方才顯示溫度上下限輸入區塊。
4. 修正複製機台設定功能 (copy-machine) 的行為,確保能正確複製 `discord_notify_types` 並重設選擇器狀態。
5. 新增與更新中、英、日語系翻譯字串。
|
2026-05-21 14:34:55 +08:00 |
|
sky121113
|
b3d00a9bef
|
feat: 重構 Discord 雙 Tab 告警設定與機台自適應溫控三層繼承鏈,並導入 Modal 內拉式複製 UX
|
2026-05-21 10:05:36 +08:00 |
|
sky121113
|
c014d7431c
|
[FIX] 修正重啟後產生重複機台日誌的問題並重構邏輯一致性
1. 修正 ProcessHeartbeat 在快取失效時會誤報韌體與溫度的問題。
2. 引入 Database Fallback 機制:當 Redis 無紀錄時自動比對資料庫現有值。
3. 統一韌體與溫度的偵測邏輯,確保兩者皆為「比對舊值 -> 異動才記 -> 補回快取」。
4. 提升系統對 CI/CD 重啟或快取清理的容錯能力。
|
2026-05-16 21:45:18 +08:00 |
|
sky121113
|
88dde0dd25
|
fix: remove redundant 4-hour temperature fallback log to reduce noise
|
2026-05-16 16:49:38 +08:00 |
|
sky121113
|
752d149940
|
[FEAT] 支援機台計畫性重啟狀態與語系更新
1. 修改 ProcessStatus Job,支援處理 'restarting' 狀態,並將其記錄為 INFO 層級而非警告。
2. 更新繁體中文與日文語系檔,新增「重啟中 / 再起動中」的翻譯。
3. 確保計畫性重啟不會觸發異常離線警報。
|
2026-05-14 18:07:53 +08:00 |
|
sky121113
|
a16b0363a8
|
[FEAT] 新增機台日誌溫度趨勢圖與同步指令日誌補全
1. 修改 ProcessCommandAck.php,將「同步商品」與「同步廣告」指令加入日誌紀錄白名單,確保同步結果正確寫入機台日誌。
2. 在 MachineController 新增 temperatureAjax API,從機台日誌中提取歷史溫度數據供圖表使用。
3. 在 web.php 註冊溫度數據 AJAX 查詢路由。
4. 在機台管理頁面 (index.blade.php) 的日誌面板中整合 ApexCharts,並於「機台狀態」分頁內嵌入溫度趨勢曲線圖。
5. 更新 Alpine.js 邏輯,實現圖表與日期篩選的同步連動,並優化面板展開時的圖表渲染。
6. 新增繁體中文、英文、日文的「溫度趨勢」翻譯標籤,並修復語言檔中的重複 key 與翻譯內容。
|
2026-05-14 17:17:55 +08:00 |
|
sky121113
|
3d1ddd5b91
|
[FEAT] 實作機台智慧連線監控與儀表板告警同步優化
1. [Machine Model] 實作智慧抖動偵測邏輯 (Jitter Detection),判定 1 小時內斷線 3 次以上為不穩定機台。
2. [Machine Model] 優化 calculated_status,機台在線時自動忽略歷史斷線警告,並修正 scopeHasAnyAlert 排除連線類告警。
3. [ProcessStatus Job] 實作自動消警機制 (Auto-resolve),機台恢復連線時自動處理舊的斷線告警。
4. [Dashboard] 同步儀表板「待處理告警」統計,確保與機台列表狀態一致。
5. [UI] 於機台列表與儀表板同步新增琥珀色閃電圖示 (⚡) 與不穩定提示 Tooltip。
6. [i18n] 新增連線不穩定相關之繁體中文翻譯詞條。
|
2026-05-14 16:20:59 +08:00 |
|
sky121113
|
34f1e823f0
|
[FIX] 修正庫存異動類型缺失與統一交易扣庫邏輯
1. 補全 machine_stock_movements 資料表 type 欄位缺失的 sale 與 decommission 列舉值,修復 SQL 寫入失敗問題。
2. 重構 TransactionService:移除過時的 remote_dispense 判斷,將所有經由交易流程(含支付代碼 100)的出貨統一記錄為 sale 異動。
3. 更新 MachineService:將 B009 貨道同步時的移除動作類型由 adjustment 改為正確的 decommission。
4. 語系更新:於 zh_TW.json 與 en.json 補全硬體狀態碼 0205 (貨道有物) 的翻譯。
|
2026-05-11 17:13:41 +08:00 |
|
sky121113
|
ee47f65523
|
[FEAT] 優化機台重啟狀態處理邏輯
1. 在 ProcessStatus Job 中新增對 restarting 狀態的判斷。
2. 若機台處於計畫性重啟狀態,則不寫入狀態變更日誌,避免後台誤報。
|
2026-05-11 14:15:26 +08:00 |
|
sky121113
|
284d56a544
|
[REFACTOR] 支付方式多語系化與 UI 響應式優化
1. [REFACTOR] Order 模型:將支付類型標籤改為多語系轉譯,支援繁中、英、日。
2. [FEAT] 補全 lang/*.json 中的支付類型翻譯。
3. [STYLE] layouts/admin.blade.php:優化電腦版與手機版邊距佈局。
4. [STYLE] 銷售紀錄分頁:優化手機版 info grid 響應式顯示。
5. [FIX] 銷售紀錄:恢復手機版完整日期時間格式。
6. [DELETE] 移除 B710 (Timer Sync) 冗餘代碼與路由。
7. [DOCS] 更新 API 文件配置。
|
2026-05-11 11:01:48 +08:00 |
|
sky121113
|
4bf53db3be
|
[FIX] 優化機台連線規範與上線日誌邏輯
1. 更新 SKILL.md 與 Java 範例,將 MQTT Client ID 格式由隨機後綴改為固定格式 SC_{serial_no},以確保單機連線唯一性。
2. 同步更新 config/api-docs.php,在 API 文件中加入 MQTT 連線參數規範說明。
3. 修正 ProcessHeartbeat.php 邏輯,當機台狀態從 offline 轉為 online 時,自動寫入「Machine is online」日誌,完善連線紀錄回溯。
|
2026-05-07 10:16:29 +08:00 |
|
sky121113
|
09bbd61c89
|
[FIX] 導正 MQTT LWT 遺囑訊息架構與文件規範
1. 修改 SKILL.md 規範,將 LWT (遺囑訊息) Topic 從 heartbeat 改為 status,並移除過時的 訂閱說明。
2. 更新 SKILL.md 內 Android Java 範例,同步改用 status Topic。
3. 移除 SKILL.md 中關於 Client ID 解析邏輯的舊文件說明。
4. 重構 ProcessStatus.php,移除過時的 SC_ 前綴與隨機碼解析邏輯,直接使用傳入的純淨機台編號。
5. 更新 ProcessHeartbeat.php 註解,反映連線狀態改由 LWT 機制與 status Topic 處理。
|
2026-05-07 09:22:09 +08:00 |
|
sky121113
|
023f639fb4
|
[STYLE] 銷售中心 UI 優化與出貨紀錄邏輯校正
1. 優化「出貨紀錄」介面,重新排列欄位優先級並移除冗餘的機台流水號。
2. 統一出貨紀錄中的商品與貨道樣式,與取貨碼模組視覺語言同步。
3. 修正出貨紀錄搜尋邏輯,支援商品名稱與貨道編號模糊搜尋。
4. 修正「訂單詳情」側滑面板中的金額顯示(修正 price/subtotal 映射)。
5. 補強訂單詳情的出貨狀態 (dispense_status) 標籤顯示邏輯。
6. 將出貨紀錄中的「數量」表頭修正為「金額」,確保與 MQTT 協議回傳資料語意一致。
7. 更新多語系檔,新增搜尋欄位 placeholder 與相關 UI 標籤翻譯。
8. 新增發票資料表 machine_time 欄位遷移檔,以完整記錄機台開立時間。
|
2026-05-04 17:20:43 +08:00 |
|
sky121113
|
8feca33f13
|
[FEAT] 優化機台日誌管理、新增庫存變動紀錄與取貨碼/通行碼介面改善
1. 新增機台異常日誌手動解除功能,包含資料庫欄位更新與 UI 操作按鈕。
2. 實作機台庫存變動紀錄系統 (Machine Stock Movements),支援追蹤補貨與銷售產生的庫存異動。
3. 重構取貨碼 (Pickup Code) 與通行碼 (Pass Code) 管理介面,採用極簡奢華風 UI 並拆分 Partial Views 提升可維護性。
4. 優化取貨操作日誌,明確區分「取貨成功」與「取貨失敗」,並加入顏色標籤增強辨識度。
5. 擴充多語系支援 (繁中、英文、日文),確保所有新功能與操作狀態均有對應翻譯。
6. 更新 IoT API 規格文件與相關 Service 邏輯,加強指令確認 (ACK) 處理機制。
|
2026-05-04 08:43:35 +08:00 |
|
sky121113
|
40aec884b0
|
[REFACTOR] 溫度回報邏輯優化與 MQTT 規格標準化
1. 優化 ProcessHeartbeat 溫度處理邏輯,改為「變動即記錄」並標準化為整數型態。
2. 在 Machine Model 中新增 temperature 欄位的 integer cast。
3. 更新 MQTT 與 API 技術規格技能文件 (SKILL.md),同步最新的溫度記錄規則。
4. 更新 config/api-docs.php,明確標註心跳上報之溫度規格與日誌規則。
5. 移除 routes/api.php 中已廢棄之 B600 與機台日誌 REST API 路由。
6. 清理 docs 目錄,將初期計畫文件遷移至 docs/plan/。
|
2026-04-22 17:02:24 +08:00 |
|
sky121113
|
12591a55f2
|
cleanup: remove redundant ProcessErrorLog job in favor of existing ProcessMachineError
|
2026-04-22 16:38:37 +08:00 |
|
sky121113
|
680d922e1f
|
feat: add ProcessErrorLog job to handle B013 mqtt errors
|
2026-04-22 16:36:56 +08:00 |
|
sky121113
|
f49c1d3058
|
feat: implement mqtt transaction business logic and fix sidebar syntax error
|
2026-04-22 16:35:47 +08:00 |
|
sky121113
|
9114269a7a
|
[FEAT] 完善遠端出貨與庫存異動的併發控制與視覺回饋
1. 修正 RemoteController 中的 MachineService 注入問題,解決遠端出貨指令失效的 500 錯誤。
2. 在 MachineService 實作貨道鎖定機制 (lockSlot/unlockSlot),防止重複扣庫存導致的數據不一致。
3. 採用樂觀扣除模式,發送指令時即更新預扣庫存,並在 ProcessCommandAck 實作失敗自動 Rollback。
4. 優化 UI 互動:在操作紀錄詳情顯示庫存變化 (如 6 -> 5),且針對執行失敗的指令加上刪除線樣式。
5. 完成指令詳情、操作紀錄與庫存歷史的語系對照表同步 (zh_TW, en, ja)。
|
2026-04-22 15:02:00 +08:00 |
|
sky121113
|
1d5aff2f2e
|
[REFACTOR] 遷移遠端管理指令至 MQTT 非同步架構與邏輯優化
1. 實作 MqttService 統一管理 MQTT 指令發送。
2. 遷移「遠端庫存與效期中心」至 MQTT 流程,並加入 batch_no (批號) 支援。
3. 修改 RemoteController 指令中心所有指令同步改由 MQTT 推送。
4. 修正 Go Gateway redis_consumer.go 確保 JSON 格式符合最新規格(移除寫死的 target/message_id)。
5. 實作 ProcessCommandAck 自動更新指令結果、異常回滾 (Rollback) 與機台自動亮燈 (Online)。
6. 完善 mqtt-communication-specs 規格文件,補齊所有指令定義與 ACK 範例。
7. 強化指令狀態保護,確保只有 pending 狀態的指令能被更新結果,防止重複處理。
|
2026-04-22 11:30:39 +08:00 |
|
sky121113
|
45b5ee5acd
|
[REFACTOR] 整合 MQTT 異常上報與 MachineService 硬體代碼映射
1. 重構 ProcessMachineError Job,將異常日誌記錄邏輯統一由 MachineService@recordErrorLog 處理,確保 error_code 能正確對應多語系標籤。
2. 更新 SKILL.md MQTT 通訊規範,修正機台故障上報 (B013) 的 Payload 範例並修復章節編號錯誤。
3. 優化 deploy-demo.yaml CI/CD 流程,解決檔案變動導致 tar 退出碼為 1 的部署中斷問題,並排除不必要的 storage 目錄同步。
|
2026-04-21 16:35:20 +08:00 |
|
sky121113
|
32bc13ac1b
|
[FIX] 修復 MQTT 監聽器與機台連線狀態同步邏輯
1. 補齊 ListenMqttQueue 中的 Job 類別引用,修復 mqtt-worker 崩潰重啟問題。
2. 實作 Go Gateway 的 Client ID 解析邏輯,正確將 SC_{serial}_{random} 格式還原為機台編號。
3. 修復 系統主題解析與 Laravel ProcessStatus Job 對齊,實現毫秒級連線狀態同步。
4. 在 ProcessStatus Job 中增加第二層 serial_no 清理保險,提高系統容錯。
5. 更新機台列表 UI 狀態顯示邏輯,支援 在線/斷線/故障 三態顯示與多語系。
6. 更新 MQTT 通訊規範 (Skill) 文件,確保全域開發定義的一致性。
7. 同步更新 zh_TW.json, en.json, ja.json 翻譯文件。
|
2026-04-21 12:38:42 +08:00 |
|
sky121113
|
959625a640
|
[FEAT] 實作 MQTT Gateway 整合與高併發 IoT 通訊架構
1. 導入 Go 語言撰寫的 MQTT Gateway (mqtt-gateway/),負責訊息接收並透過 Redis List 轉發至 Laravel。
2. 更新 compose.yaml 以包含 EMQX Broker 與 mqtt-gateway 服務,並配置相關環境變數。
3. 新增 ListenMqttQueue 指令與對應的異步處理 Job (ProcessHeartbeat, ProcessTransaction, ProcessMachineError)。
4. 實作 MqttSyncAuth 指令與 Machine Model Observer,支援自動化的機台認證資訊同步至 Redis。
5. 新增 MqttCommandService 用於處理雲端至機台的即時指令下發。
6. 更新專案規範文件 (framework.md 與 Skills) 以反映新的 MQTT 通訊機制與安全性規範。
7. 提供 simulate-heartbeat.sh 指令碼以供開發與測試使用。
|
2026-04-16 14:28:42 +08:00 |
|
sky121113
|
a599b14df1
|
[FEAT] 優化機台硬體通訊協議與管理介面互動性
1. 修復帳號管理與角色權限頁面搜尋功能,支援 Enter 鍵快捷提交。
2. 完成 B013 (機台故障上報) API 實作,改用非同步隊列 (ProcessMachineError) 處理日誌上報。
3. 精簡 B013 API 參數,移除冗餘的 message 欄位,統一由雲端對照表翻譯。
4. 更新技術規格文件 (SKILL.md) 與系統 API 文件配置 (api-docs.php)。
5. 修正平台管理員帳號在搜尋過濾時的資料隔離邏輯。
|
2026-04-08 14:52:00 +08:00 |
|
sky121113
|
87ef247a48
|
[FIX] 整合機台效期管理功能並優化 UI 比例
- 修正 Alpine.js 作用域問題,恢復效期編輯彈窗功能
- 整合機台日誌與效期管理至主列表頁 (Index)
- 優化大螢幕貨道格線佈局,解決日期折行問題
- 縮小彈窗字體與內距,調整為極簡奢華風 UI
- 新增貨道效期與批號欄位之 Migration 與模型關聯
- 補齊中、英、日三語系翻譯檔
|
2026-03-24 16:46:04 +08:00 |
|
sky121113
|
3ce88ed342
|
[FEAT] 重構機台日誌 UI 與增加多語系支援,並整合 IoT API 核心架構
- 機台日誌:對齊 Luxury UI 規範,實作整合式佈局與分頁組件。
- 多語系:完成機台日誌繁、英、日三語系翻譯與動態處理。
- UI 規範:更新 SKILL.md 定義「標準列表 Bible」。
- 後端:完善 TenantScoped 隔離邏輯,修復儀表板死循環與 User Model 缺失。
- IoT:擴展機台、會員 Model 並建立交易、商品、狀態等核心表結構。
- 基礎設施:設置台北時區與 Docker 環境變數同步。
|
2026-03-16 17:29:15 +08:00 |
|
sky121113
|
c30c3a399d
|
feat: 實作機台日誌核心功能與 IoT 高併發處理架構
|
2026-03-09 09:43:51 +08:00 |
|