Browse Source

fix:消单后清除本地记录失败时打印订单记录,创建订单前检查订单状态

Zhenghj 1 year ago
parent
commit
b15c5be87a

+ 7 - 1
app/src/main/java/com/doverfuelingsolutions/issp/fusion/FusionManager.kt

@@ -235,11 +235,17 @@ object FusionManager : LifecycleObserver, OnFdcClientStateChangedListener,
 
                         //将订单页面减去此需消除订单
                         val orders = SPUtil.getOrderListByPump(dc.pumpNo)
-                        orders.remove(orders.find { it.pumpNo == dc.pumpNo && it.releaseTokenElement == dc.releaseTokenElement && it.transactionSeqNo == dc.transactionSeqNo })
+                        val result = orders.remove(orders.find { it.pumpNo == dc.pumpNo && it.releaseTokenElement == dc.releaseTokenElement && it.transactionSeqNo == dc.transactionSeqNo })
                         SPUtil.setOrderListByPump(dc.pumpNo,orders)
                         onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo, orders.isNotEmpty())   //枪页面显示浅色
                         onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo,orders)
 
+                        if (!result) {
+                            val findOrder = "${dc.pumpNo}-${dc.releaseTokenElement}-${dc.transactionSeqNo}-${dc.releaseTokenAttribute}"
+                            val ordersStr = orders.map { "${it.pumpNo}-${it.releaseTokenElement}-${it.transactionSeqNo}-${it.releaseTokenAttribute}" }
+                            DFSLog.i("查找的订单:${findOrder}","当前订单:${ordersStr}")
+                        }
+
                     }
                     "Locked" -> if (null != dc.pumpNo && null != dc.transactionSeqNo) { // 锁单(被某一设备正在支付),或本机锁,或其他设备锁
 //                        DFSLog.i("订单订单订单",dc.toString())

+ 7 - 0
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/FragmentOrderList.kt

@@ -154,6 +154,13 @@ class FragmentOrderList private constructor() : FragmentBasic(),RefreshOrder {
                 FuelInfoApi.accumulationInfo(dc)
             }
             if (resultAccumulationInfo.success && resultAccumulationInfo.data != null) {
+                if (resultAccumulationInfo.data.State == "Paid" || resultAccumulationInfo.data.State == "Cleared") {
+                    dialog.dismiss()
+                    (requireActivity() as MainActivity).fragmentRouter.resumeFragmentToolbarTimer()
+                    DFSToastUtil.info("此订单已支付,请勿重复支付")
+                    return@launchWhenStarted
+                }
+
                 //2022-10-8号,春洲 token:80322,出现在创建订单时枪号传成 1,这里将订单的枪号赋值为订单详情中的枪号
                 dc.nozzleNo = resultAccumulationInfo.data.SiteLevelNozzleId
                 dc.amountTotalizer = BigDecimal(resultAccumulationInfo.data.AmountTotalizer)