|
@@ -126,7 +126,58 @@ object FusionManager : LifecycleObserver, OnFdcClientStateChangedListener,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- override fun onServiceResponseReceived(sender: FdcClient?, serviceResponse: ServiceResponse?) {}
|
|
|
+ override fun onServiceResponseReceived(sender: FdcClient?, serviceResponse: ServiceResponse?) {
|
|
|
+// if (serviceResponse == null) return
|
|
|
+// HsLogUtils.o(HsLogTagFlag.FDC_TAG, serviceResponse)
|
|
|
+// HsLogUtils.o(
|
|
|
+// HsLogTagFlag.FDC_TAG,
|
|
|
+// "====================================================================================================================================="
|
|
|
+// )
|
|
|
+// if ("AuthentificationError" == serviceResponse.overallResult) {
|
|
|
+// HsLogUtils.o("AuthentificationError", "restart")
|
|
|
+// coroutineIO.launch {
|
|
|
+// sender?.restartAsync()
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if (serviceResponse.singleDeviceClass == null) return
|
|
|
+// when (serviceResponse.requestType) {
|
|
|
+// "ClearFuelSaleTrx" -> //支付成功
|
|
|
+// if ("Success" == serviceResponse.overallResult) { //清除成功,则移除
|
|
|
+// val dc = serviceResponse.singleDeviceClass
|
|
|
+//// HsSpUtils.removeClearOrders(dc)
|
|
|
+// // 支付成功后,移除本地云订单,清单
|
|
|
+// GlobalScope.launch(Dispatchers.IO) {
|
|
|
+// SPUtil.removeLockOrder(dc)
|
|
|
+// val resultClear = clearOrder(dc)
|
|
|
+// if (resultClear.success) {
|
|
|
+// dc.state = "Cleared"
|
|
|
+// SPUtil.removeUnclearedOrder(dc)
|
|
|
+// SPUtil.removeWayneOrder(dc)
|
|
|
+// } else {
|
|
|
+// // 失败则记下来,后续再尝试消单
|
|
|
+// SPUtil.addUnclearedOrder(dc)
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// }
|
|
|
+// "LockFuelSaleTrx" -> {
|
|
|
+// //锁定成功
|
|
|
+// if ("Success" == serviceResponse.overallResult) {
|
|
|
+// val dc = serviceResponse.singleDeviceClass
|
|
|
+//// HsSpUtils.saveLastLockOrder(dc) //当前正在操作的订单,主要怕收到锁命令时把他锁了
|
|
|
+//// HsSpUtils.saveNeedUnLockOrder(dc)
|
|
|
+// SPUtil.addLockOrder(dc)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// }
|
|
|
+// "UnlockFuelSaleTrx" -> if ("Success" == serviceResponse.overallResult) {
|
|
|
+// //解锁成功
|
|
|
+//// HsSpUtils.removeUnLockSuccessOrder(serviceResponse.singleDeviceClass)
|
|
|
+// val dc = serviceResponse.singleDeviceClass
|
|
|
+// SPUtil.removeLockOrder(dc)
|
|
|
+// }
|
|
|
+// }
|
|
|
+ }
|
|
|
|
|
|
override fun onFdcMessageReceived(sender: FdcClient?, fdcMessage: FdcMessage?) {
|
|
|
if (fdcMessage == null || fdcMessage is FdcMessageHeartbeat
|
|
@@ -145,34 +196,70 @@ object FusionManager : LifecycleObserver, OnFdcClientStateChangedListener,
|
|
|
when (dc.state) {
|
|
|
"Payable" -> { // 新的订单,可以支付
|
|
|
//将订单页面增加此可支付订单
|
|
|
- onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo,true)
|
|
|
- onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo)
|
|
|
+// DFSLog.i("订单订单订单",dc.toString())
|
|
|
+
|
|
|
+ //----------------------------------------------------
|
|
|
+ var isNew = true
|
|
|
+ val orders = SPUtil.getOrderListByPump(dc.pumpNo)
|
|
|
+ orders.forEach {
|
|
|
+ if (it.pumpNo == dc.pumpNo && it.transactionSeqNo == dc.transactionSeqNo) {
|
|
|
+ it.state = dc.state
|
|
|
+ isNew = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isNew) {
|
|
|
+ //这里获取到的 releaseTokenAttribute 为 null,但其等同于 releaseTokenElement
|
|
|
+ dc.releaseTokenAttribute = dc.releaseTokenElement
|
|
|
+ val nozzle = nozzles.find { it.pumpId == dc.pumpNo && it.logicId == dc.nozzleNo }
|
|
|
+ nozzle?.let {
|
|
|
+ dc.nozzleNo = it.physicalId
|
|
|
+ dc.logicNo = it.logicId
|
|
|
+ dc.productName = it.barcodeName
|
|
|
+ }
|
|
|
+ orders.add(0,dc)
|
|
|
|
|
|
+ SPUtil.setOrderListByPump(dc.pumpNo, orders)
|
|
|
+ onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo,orders) //更新订单页面
|
|
|
+ } else {
|
|
|
+ SPUtil.setOrderListByPump(dc.pumpNo,orders)
|
|
|
+ onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo,orders) //更新订单页面
|
|
|
+ }
|
|
|
+ onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo, true)//不管是不是新订单,都表示这把枪有单,需高亮显示
|
|
|
+//----------------------------------------------------
|
|
|
+// onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo, true)
|
|
|
+// onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo)
|
|
|
}
|
|
|
"Cleared" -> if (null != dc.pumpNo && null != dc.transactionSeqNo) { //需要消除的单(一般是已经支付过了,或本机支付的,或其他设备支付的)
|
|
|
-// val sourceOrder = SPUtil.getOrderListByPump(dc.pumpNo)
|
|
|
-// if (sourceOrder.isNotEmpty()){
|
|
|
-// sourceOrder.remove(sourceOrder.find { it.pumpNo == dc.pumpNo && it.transactionSeqNo == dc. transactionSeqNo})
|
|
|
-// SPUtil.setOrderListByPump(dc.pumpNo,sourceOrder)
|
|
|
-//
|
|
|
-// if (sourceOrder.isEmpty()) {
|
|
|
-// onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo,false) //枪页面显示浅色
|
|
|
-// }
|
|
|
-// }
|
|
|
+
|
|
|
+ //-----------------------------------------------------------------------------------------------------
|
|
|
SPUtil.removeLockOrder(dc)
|
|
|
SPUtil.removeUnclearedOrder(dc)
|
|
|
SPUtil.removeWayneOrder(dc)
|
|
|
|
|
|
|
|
|
//将订单页面减去此需消除订单
|
|
|
- onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo,false) //枪页面显示浅色
|
|
|
- onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo)
|
|
|
+ val orders = SPUtil.getOrderListByPump(dc.pumpNo)
|
|
|
+ orders.remove(orders.find { it.pumpNo == dc.pumpNo && it.transactionSeqNo == dc.transactionSeqNo })
|
|
|
+ SPUtil.setOrderListByPump(dc.pumpNo,orders)
|
|
|
+ onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo, orders.isNotEmpty()) //枪页面显示浅色
|
|
|
+ onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo,orders)
|
|
|
+//-----------------------------------------------------------------------------------------------------
|
|
|
+// onRefreshNozzleUi?.onRefreshNozzleUi(dc.pumpNo, false) //枪页面显示浅色
|
|
|
+// onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo)
|
|
|
|
|
|
}
|
|
|
"Locked" -> if (null != dc.pumpNo && null != dc.transactionSeqNo) { // 锁单(被某一设备正在支付),或本机锁,或其他设备锁
|
|
|
+// DFSLog.i("订单订单订单",dc.toString())
|
|
|
+ //---------------------------------------------------------
|
|
|
|
|
|
- onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo)
|
|
|
+ val order = SPUtil.getOrderListByPump(dc.pumpNo)
|
|
|
+ order.find { it.pumpNo == dc.pumpNo && it.transactionSeqNo == dc.transactionSeqNo }
|
|
|
+ ?.state = dc.state
|
|
|
+ SPUtil.setOrderListByPump(dc.pumpNo, order)
|
|
|
+ onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo,order)
|
|
|
|
|
|
+//---------------------------------------------------------
|
|
|
+// onRefreshOrderUi?.onRefreshOrderUi(dc.pumpNo)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -194,7 +281,7 @@ object FusionManager : LifecycleObserver, OnFdcClientStateChangedListener,
|
|
|
}
|
|
|
if (!isExist) pumpSourceOrder.add(dc) //不存在添加
|
|
|
|
|
|
- SPUtil.setOrderListByPump(dc.pumpNo,pumpSourceOrder)
|
|
|
+ SPUtil.setOrderListByPump(dc.pumpNo, pumpSourceOrder)
|
|
|
}
|
|
|
|
|
|
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
|
|
@@ -298,10 +385,10 @@ object FusionManager : LifecycleObserver, OnFdcClientStateChangedListener,
|
|
|
val resultDetailList = arrayListOf<DeviceClass>()
|
|
|
unsettledList.forEach {
|
|
|
val detail = getOrderDetail(it)
|
|
|
- if(detail.success) {
|
|
|
+ if (detail.success) {
|
|
|
detail.data?.productName =
|
|
|
nozzles.find { n -> n.pumpId == detail.data?.pumpNo && detail.data.nozzleNo == n.physicalId }?.barcodeName
|
|
|
- ?:""
|
|
|
+ ?: ""
|
|
|
detail.data?.let { it1 -> resultDetailList.add(it1) }
|
|
|
}
|
|
|
}
|
|
@@ -414,6 +501,11 @@ object FusionManager : LifecycleObserver, OnFdcClientStateChangedListener,
|
|
|
"Success",
|
|
|
true
|
|
|
)) {
|
|
|
+ SPUtil.addLockOrder(DeviceClass().apply {
|
|
|
+ this.pumpNo = pumpId
|
|
|
+ this.transactionSeqNo = transactionNo
|
|
|
+ this.releaseTokenAttribute = token.toString()
|
|
|
+ })
|
|
|
it.resume(DFSResult.success(true))
|
|
|
} else {
|
|
|
it.resume(
|