Kaynağa Gözat

Merge branch 'release/v1.2.09'

Zhenghj 1 yıl önce
ebeveyn
işleme
13c9f35c0e

+ 2 - 2
app/build.gradle

@@ -21,8 +21,8 @@ android {
         applicationId "com.doverfuelingsolutions.issp"
         minSdkVersion 22
         targetSdkVersion 26
-        versionCode 21
-        versionName "1.2.08"
+        versionCode 22
+        versionName "1.2.09"
         archivesBaseName = versionName + "." + getTime()
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

+ 8 - 5
app/src/main/java/com/doverfuelingsolutions/issp/api/SystemApi.kt

@@ -130,11 +130,14 @@ object SystemApi {
      * 查找云端当前订单状态
      */
     suspend fun getOrderStateForClound(dc: DeviceClass) = suspendCoroutine<DFSResult<CheckResponse>> {
-        val checkRequest =
-            CheckRequest(dc.transactionSeqNo, dc.pumpNo.toString(), GlobalData.serialNumber.get())
-
-        DFSLog.i("查找云端订单状态:${dc.transactionSeqNo}-${dc.pumpNo.toString()}-${GlobalData.serialNumber.get()}")
-        serviceCheck.checkOrderState(dc.transactionSeqNo, dc.pumpNo.toString(), GlobalData.serialNumber.get()).enqueue(object :Callback<CheckResponse>{
+        val releaseToken = dc.releaseTokenAttribute ?: ""
+        val pumpInfo = if (dc.pumpNo != null) dc.pumpNo.toString() else ""
+        val amount = if (dc.amount != null) dc.myAmount else ""
+        val transactionSeqNo = dc.transactionSeqNo ?: ""
+        val time = dc.endTimeStamp ?: ""
+
+        DFSLog.i("查找云端订单状态:${releaseToken}-${amount}-${transactionSeqNo}-${pumpInfo}-${time}-${GlobalData.serialNumber.get()}")
+        serviceCheck.checkOrderState(time,releaseToken,amount,transactionSeqNo, pumpInfo, GlobalData.serialNumber.get()).enqueue(object :Callback<CheckResponse>{
             override fun onResponse(call: Call<CheckResponse>, response: Response<CheckResponse>) {
                 val code = response.code()
                 val body = response.body()

+ 3 - 0
app/src/main/java/com/doverfuelingsolutions/issp/api/service/ServiceCheck.kt

@@ -12,6 +12,9 @@ interface ServiceCheck {
 
     @POST(WayneApiConfig.CHECK_ORDER_STATE)
     fun checkOrderState(
+        @Query("FuelItemTransactionEndTime") fuelItemTransactionEndTime: String,
+        @Query("FuelItemFdcReleaseTokenAttribute") fuelItemFdcReleaseTokenAttribute: String,
+        @Query("FuelItemOriginalGrossAmount") fuelItemOriginalGrossAmount:String,
         @Query("SeqNo") seqNo:String,
         @Query("NozzleId") nozzleId:String,
         @Query("sn") sn: String,

+ 9 - 0
app/src/main/java/com/doverfuelingsolutions/issp/view/MainActivity.kt

@@ -361,10 +361,19 @@ class MainActivity : AppCompatActivity(),
                     val info = item.split("-")
                     val pumpId = info[0].toInt()
                     val transactionNo = info[1]
+                    val token = info[2]
+                    val orderListByPump = SPUtil.getOrderListByPump(pumpId)
+                    val order = orderListByPump.find {
+                                it.pumpNo == pumpId &&
+                                it.transactionSeqNo == transactionNo &&
+                                (it.releaseTokenAttribute == token || it.releaseTokenElement == token) }
                     async {
                         val deviceClass = DeviceClass()
                         deviceClass.pumpNo = pumpId
                         deviceClass.transactionSeqNo = transactionNo
+                        deviceClass.releaseTokenAttribute = token
+                        deviceClass.amount = order?.amount
+                        deviceClass.endTimeStamp = order?.endTimeStamp
                         SystemApi.getOrderStateForClound(deviceClass)
                     }
                 }

+ 45 - 0
app/src/test/java/com/doverfuelingsolutions/issp/ExampleUnitTest.kt

@@ -5,6 +5,7 @@ import com.doverfuelingsolutions.issp.driver.lib.PrintManager
 import com.doverfuelingsolutions.issp.utils.thread.ThreadUtil
 import com.wayne.www.waynelib.fdc.FdcClient
 import com.wayne.www.waynelib.fdc.OnFdcServiceResponseReceivedListener
+import com.wayne.www.waynelib.fdc.message.DeviceClass
 import com.wayne.www.waynelib.fdc.message.ServiceResponse
 import kotlinx.coroutines.Deferred
 import kotlinx.coroutines.GlobalScope
@@ -13,6 +14,7 @@ import kotlinx.coroutines.launch
 import org.junit.Test
 
 import org.junit.Assert.*
+import java.math.BigDecimal
 import kotlin.coroutines.resume
 import kotlin.coroutines.suspendCoroutine
 
@@ -65,4 +67,47 @@ class ExampleUnitTest {
             }
         }
     }
+
+    @Test
+    fun test1(){
+        val arrayListOf = arrayListOf<DeviceClass>()
+        for (index in 1 .. 5) {
+            val deviceClass = DeviceClass()
+            deviceClass.pumpNo = index
+            deviceClass.transactionSeqNo = "123"
+            deviceClass.releaseTokenAttribute = "123"
+            deviceClass.endTimeStamp = "123456"
+            deviceClass.amount = BigDecimal("0.01")
+            arrayListOf.add(deviceClass)
+        }
+
+        val order1 = arrayListOf.find {
+            it.pumpNo == 1 &&
+                    it.transactionSeqNo == "123" &&
+                    (it.releaseTokenAttribute == "123" || it.releaseTokenElement == "123") }
+        val deviceClass1 = DeviceClass()
+        deviceClass1.pumpNo = 1
+        deviceClass1.transactionSeqNo = "123"
+        deviceClass1.releaseTokenAttribute = "123"
+        deviceClass1.amount = order1?.amount
+        deviceClass1.endTimeStamp = order1?.endTimeStamp
+
+
+        val order2 = arrayListOf.find {
+            it.pumpNo == 10 &&
+                    it.transactionSeqNo == "123" &&
+                    (it.releaseTokenAttribute == "123" || it.releaseTokenElement == "123") }
+        val deviceClass2 = DeviceClass()
+        deviceClass2.pumpNo = 1
+        deviceClass2.transactionSeqNo = "123"
+        deviceClass2.releaseTokenAttribute = "123"
+        deviceClass2.amount = order2?.amount
+        deviceClass2.endTimeStamp = order2?.endTimeStamp
+
+        println("${deviceClass1.pumpNo} ${deviceClass1.transactionSeqNo} ${deviceClass1.releaseTokenAttribute}" +
+                "${deviceClass1.amount} ${deviceClass1.endTimeStamp}")
+
+        println("${deviceClass2.pumpNo} ${deviceClass2.transactionSeqNo} ${deviceClass2.releaseTokenAttribute}" +
+                "${deviceClass2.amount} ${deviceClass2.endTimeStamp}")
+    }
 }