Commit Graph

388 Commits

Author SHA1 Message Date
sky121113
fed81a12f3 [STYLE] 移除 mqtt_handler.go 中多餘的空白行
1. 整理代碼格式,移除 HandleMessage 函式中多餘的換行符號。
2026-04-21 14:19:35 +08:00
sky121113
9166decbb8 [FIX] 修復 MQTT 連線狀態追蹤與 EMQX 版本相容性問題
1. 優化 mqtt-gateway 的 $SYS 主題解析邏輯,改用關鍵字匹配(搜尋 clients/)以支援不同版本的 EMQX。
2. 修正啟動日誌中的 Client ID 顯示,改為讀取動態設定。
3. 配合 150 伺服器 EMQX 降級操作,同步更新通訊層容錯代碼。
2026-04-21 14:18:24 +08:00
sky121113
43a160e2d4 fix(mqtt): improve topic parsing logic and dynamic clientid logging 2026-04-21 14:06:39 +08:00
sky121113
c3b623e5e0 [FIX] 修正 CI/CD 中 docker run 的掛載問題,使用 pipe 方式同步設定檔 2026-04-21 13:13:26 +08:00
sky121113
15c0db6742 [REFACTOR] 整理並合併 CI/CD 準備步驟 (Step 0) 2026-04-21 13:11:58 +08:00
sky121113
cec70f38b5 [FIX] 增加 Step 0.2 同步設定檔至宿主機,解決 EMQX 掛載失敗問題 2026-04-21 13:08:12 +08:00
sky121113
cc966f2de7 [FIX] 優化 CI/CD 掛載邏輯,避免 Docker 自動誤建目錄 2026-04-21 13:06:20 +08:00
sky121113
6ef7e2211c [FIX] 修正 CI/CD .env 被誤建為目錄的問題 2026-04-21 13:04:41 +08:00
sky121113
bb426abbc0 [FIX] 修正 CI/CD 掛載錯誤,增加 acl.conf 目錄清理步驟 2026-04-21 13:02:44 +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
f4f2ca9175 [STYLE] 調整 Workflow 檔案格式
1. 移除 .gitea/workflows/deploy-demo.yaml 中多餘的空行以符合規範。
2026-04-21 08:53:51 +08:00
sky121113
3a31a1a593 [STYLE] 調整 Workflow 檔案格式以符合規範
1. 在 .gitea/workflows/deploy-demo.yaml 中優化程式碼區塊間距。
2026-04-21 08:23:56 +08:00
sky121113
23225ffe3f [DOCS] 更新 MQTT 即時通訊規範,新增 App 端 WSS 連線標準
1. 補齊各連線通道 (TCP/SSL/WS/WSS) 的埠號建議表。
2. 新增 App 端 (Android) WSS 連線專節,包含 URL 參數與密碼雜湊要點。
3. 提供 HiveMQ Client 初始化範例程式碼。
4. 定義 MQTT 優先、HTTP 兜底的 Fallback 通訊機制與時間窗口。
2026-04-17 17:25:20 +08:00
sky121113
bfe359d5a2 [FIX] 移除 B014 API 的強制度人員認證,簡化機台接入流程
1. 修正 routes/api.php:移除 machine/setting/B014 的 auth:sanctum middleware。
2. 修正 MachineController.php:移除 getSettings 方法中的 RBAC 權限檢查邏輯,改為僅需驗證機台序號即可獲取設定。
2026-04-17 16:14:17 +08:00
sky121113
bf43a33df3 [FEAT] 整合 MQTT 資料流自動化與環境埠號修復
1. 整合 MQTT Gateway 並支援動態 Redis Key 前綴隔離,解決多環境衝突。
2. 修正本地開發環境與 Demo 環境的埠號映射 (80/8080) 與 Vite HMR (5175) 設定。
3. 更新 CI/CD 部署流程,新增自動同步程式碼至 MQTT Worker 與 Queue 容器。
4. 擴充 .env.example 以提供完整的 MQTT/EMQX 相關變數範本。
5. 更新模擬腳本以符合現有測試資料。
2026-04-17 13:22:46 +08:00
sky121113
e3ad7dd44f [DOCS] 修正並對齊 Demo 環境基礎設施資訊
1. 更新 README.md 與 framework.md 中的 Demo 環境網域、伺服器指令、部署路徑。
2. 更新 Gitea Workflow (.gitea/workflows/) 中的 Gitea 官方網址 (gitea.setdomains.work)。
3. 更新遠端部署模板中的舊 IP、路徑與機器人信箱,確保全站文件一致性。
2026-04-17 10:30:05 +08:00
sky121113
588f5659ca [FIX] 修復 MQTT Gateway 啟動崩潰與認證失敗問題
1. 在 mqtt-gateway/main.go 中加入連線重試邏輯 (Redis & MQTT),避免在服務初始化或認證暫時失敗時直接退出。
2. 更新 App/Console/Commands/MqttSyncAuth.php,加入同步 star-cloud-gateway 自身認證資料至 Redis 的邏輯。
3. 修改 compose.yaml,為 mqtt-gateway 加入 restart: always,並為 emqx 加入健康檢查以優化容器啟動流程。
2026-04-17 09:08:18 +08:00
sky121113
550ebc7fb6 Merge remote-tracking branch 'origin/demo' into dev 2026-04-17 08:21:05 +08:00
sky121113
91cb74f7f7 [FIX]: 修復 machines 資料表缺失 status 欄位之問題
1. 新增 2026_04_16_174321_add_status_to_machines_table.php 遷移檔以補回缺失欄位。
2. 更新 .gitignore 排除 PPTX 生成相關目錄。
2026-04-17 08:19:28 +08:00
sky121113
4433250c19 fix: correct container port mapping to 80 2026-04-16 17:35:59 +08:00
sky121113
f9c55df165 ci: retrigger after MySQL volume reset 2026-04-16 17:28:23 +08:00
sky121113
8901c469a0 ci: retrigger after fixing .env typo and cleaning stale containers 2026-04-16 17:26:07 +08:00
sky121113
2de80cd1bf fix: ensure .env is visible to docker compose up for environment variable interpolation 2026-04-16 17:22:12 +08:00
sky121113
cf267a9264 ci: retrigger deploy (pre-placed .env on host) 2026-04-16 17:18:07 +08:00
sky121113
420263680d fix: chown /.npm cache and clean stale node_modules for npm install 2026-04-16 17:11:54 +08:00
sky121113
ebc8b7943f fix: chown after docker cp to fix composer permission denied 2026-04-16 17:08:45 +08:00
sky121113
3cacf9d80f fix: use docker cp to inject source code into container (bypass volume mount issue) 2026-04-16 17:06:59 +08:00
sky121113
9775c59996 fix: correct composer installer option --instdir to --install-dir 2026-04-16 16:50:11 +08:00
sky121113
d8f41e87b4 fix: force no-cache build to ensure composer is installed in image 2026-04-16 16:31:42 +08:00
sky121113
daddfe0f85 fix: use bash and export PATH to resolve composer not found in docker exec 2026-04-16 16:28:06 +08:00
sky121113
5259f0ad84 fix: restore missing php extensions and fix dockerfile syntax 2026-04-16 16:19:13 +08:00
sky121113
77510a0118 fix: install composer in docker image 2026-04-16 16:16:04 +08:00
sky121113
4b8e9f7025 fix: align container name with compose.yaml in gitea actions 2026-04-16 16:14:21 +08:00
sky121113
66dfde2a06 fix: remove non-existent testing db script mount causing mysql crash in ci/cd 2026-04-16 16:12:15 +08:00
sky121113
79eb391c1f fix: remove redundant npm self-upgrade and split global installs for stability 2026-04-16 16:04:32 +08:00
sky121113
7f1e3970e3 refactor: split Dockerfile RUN commands for better debugging and fix mirror switch logic 2026-04-16 15:55:49 +08:00
sky121113
5d4c9b018d perf: switch all mirrors including security to Taiwan to eliminate build delays 2026-04-16 15:46:58 +08:00
sky121113
2c04a55bfb perf: switch to Taiwan mirrors in Dockerfile to speed up build 2026-04-16 15:44:39 +08:00
sky121113
b56bdc624b fix: correct docker-compose filename in workflow 2026-04-16 15:15:50 +08:00
sky121113
b90e05a91a fix: switch to ubuntu-latest labels for compatibility with current runner 2026-04-16 15:12:14 +08:00
sky121113
566448fe94 chore: setup gitea actions internal deployment for demo-sc-103 2026-04-16 15:07:15 +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
1301bf1cb8 [FIX] 徹底修復商品管理分頁參數洩漏與 UI 狀態不一致問題
1. 隔離商品列表與分類管理的搜尋參數(product_search / category_search)。
2. 隔離商品列表與分類管理的公司篩選參數(product_company_id / category_company_id)。
3. 優化分頁切換邏輯,切換 Tab 時自動清理 URL 參數,解決標籤殘留問題。
4. 修復 searchable-select 組件因屬性傳遞錯誤導致的 500 Internal Server Error。
5. 統一各分頁「公司篩選」Placeholder 為「所有公司」。
6. 完成分類管理搜尋框的多語系支援(新增 Search categories... 翻譯鍵值)。
7. 優化分頁器 (Pagination) 樣式以符合極簡奢華風規範。
2026-04-15 16:45:13 +08:00
sky121113
24553d9b73 [FEAT] 遠端指令中心 AJAX 化與介面標準化
1. 將遠端指令中心 (Remote Command Center) 兩大分頁 (操作紀錄、新增指令) 改為 AJAX 異步載入,提升切換速度。
2. 建立抽離的 Blade Partials 結構 (partials/tab-history-index.blade.php, tab-machines-index.blade.php) 以利維護。
3. 實作全域 Loading Bar 與 Luxury Spinner 視覺回饋,確保 AJAX 過程中有明確狀態。
4. 修正庫存管理與指令中心在機台圖片不存在時的 `Undefined array key 0` 錯誤。
5. 標準化操作紀錄搜尋行為:文字搜尋改為 Enter 觸發,日期範圍改為手動按下搜尋按鈕觸發,並新增「重設」功能。
6. 設定 Flatpickr 日期時間選擇器預設時間為 `00:00`。
7. 修正 `stock.blade.php` 中的 PHP 語法錯誤 (括號未閉合)。
8. 同步更新多語系翻譯檔案 (zh_TW, en, ja)。
2026-04-15 13:17:25 +08:00
sky121113
ee985abb2e [STYLE] 優化機台設定頁面載入提示與 AJAX 互動體驗
1. 新增全站頂部進度條觸發機制,在搜尋或分頁時提供視覺反饋。
2. 為機台設定頁面新增奢華風 Spinner 載入遮罩,替代原本抖動的骨架屏。
3. 優化分頁與搜尋的 AJAX 回傳邏輯,載入時降低背景透明度以維持版面穩定。
4. 新增多語系翻譯字串:Failed to load tab content。
2026-04-15 11:51:23 +08:00
sky121113
376f43fa3a [FIX] 修正 IoT 管理介面分頁持久化與實作 B055 遠端出貨 API
1. 視圖持久化優化:將 index/stock 視圖切換從 x-if 改為 x-show,解決 HSSelect 在切換分頁後失效的問題。
2. 變數存取安全:為所有 selectedMachine 屬性存取補上可選鏈 (?.) 保護,防止 x-show 模式下的 null 錯誤。
3. UI 體驗提升:放大「指令中心」與「庫存管理」歷史紀錄的時間字體至 15px 並加粗顯示。
4. API 功能實作:在 routes/api.php 與 MachineController 中實作 B055 遠端指令出貨控制端點。
5. 文件同步:更新 SKILL.md 技術規格文件,明確定義 B055 的請求與回應格式。
6. 樣式調整:修改 app.css 優化奢華風 UI 字體與間距細節。
2026-04-15 10:54:58 +08:00
sky121113
f49938d1a7 [DOCS] 補齊 B024, B027, B055 API 技術規格與文檔定義
1. 更新技術手冊 (SKILL.md) 與 API 規格文件 (api-docs.php),補齊 B024, B027, B055 之定義。
2. 修正文件序號跳號問題,確保 B017 序號正確銜接。
3. 詳細說明 B055 之指令 ID 遠端出貨運作機制。
2026-04-14 17:36:56 +08:00
sky121113
2702e5a655 [REFACTOR] 標準化 IoT API 方法並修正日期格式
1. 將 B014 (參數下載) 與 B017 (貨道同步) 路由從 POST 改為 GET。
2. 移除 B017 冗餘的 machine 參數,改由 Bearer Token 自動識別。
3. 修正 B017 回傳資料中 expiry_date 的 ISO 8601 格式問題,統一為 Y-m-d。
4. 同步更新所有技術規格文件 (.agents/ 規範) 與 API 說明配置 (config/api-docs.php)。
2026-04-14 16:46:35 +08:00
sky121113
6382709b90 [DOCS] 更新開發進度表
1. 標記「遠端管理」模組為已完成。
2. 標記「儀表板」模組為已完成。
2026-04-14 16:18:05 +08:00
sky121113
66f7c1ffb8 [FEAT] 實作 B017 貨道庫存全量同步 API 與多語系支援
1. 實作 B017 (reload_msg) 端點,支援貨道庫存、效期與批號的全量同步。
2. 將 B017 回傳欄位映射至 App 需求:slot_no -> tid, stock -> num。
3. 新增 expiry_date (效期) 與 batch_no (批號) 欄位支援。
4. 實作指令狀態閉環邏輯,成功同步後自動將相關 reload_stock 指令標記為成功。
5. 將指令備註欄位多語系化,新增「庫存已與機台同步」繁中、英文、日文翻譯。
6. 更新 API 技術規格文件 (.agents/skills) 與系統 API 文件配置 (config/api-docs.php)。
2026-04-14 15:06:51 +08:00