1. 問題:出貨流程若走 dialogCancel() 收場(倒數結束 / dispatchIndex 越界 / 中途中止),整筆交易完全不上報。批次 MQTT Finalize 僅在「成功完成」與 「ERROR_PROCESS_GOODS 失敗」兩條路送出,dialogCancel 這條共通關閉路徑漏掉。 此缺口於 main 既存,因通用版原無多品項出貨、Cmuh 失敗都走 ERROR_PROCESS_GOODS 而未被觸發;多品項 basic 出貨為首次暴露。 2. 修正:在 dialogCancel() 開頭、buyList.clear() 之前加安全網—— 若出貨已開始(dispatchList 非空)且尚未結案(!isFinalizing), 補呼叫既有 finalizeFailedDispatch() 送出一筆含全部明細的部分/未完成結案。 3. 守門:以 isFinalizing 擋住正常成功(:946)/錯誤(:1062)路徑,零重複上報; 通行碼 flowType=5 仍由 publishFinalizeUnlessPassCode 自動略過, 對晟崴/中國醫現行行為零影響。 雙硬體編譯綠。實機驗證待硬體(多品項第2件失敗→後台收到一筆部分出貨)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| libs | ||
| src | ||
| .gitignore | ||
| build.gradle | ||
| proguard-rules.pro | ||