Переглянути джерело

refactor(更新) :
- 钥匙归还的作业票是否结束的逻辑判断

周文健 4 місяців тому
батько
коміт
3f095e7b04

+ 11 - 9
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -73,6 +73,7 @@ import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.view.activity.LoginActivity
 import com.grkj.iscs.view.base.BaseActivity
 import com.grkj.iscs.view.dialog.TipDialog
+import com.sik.sikcore.SIKCore
 import com.sik.sikcore.date.TimeUtils
 import com.sik.sikcore.thread.ThreadUtils
 import kotlinx.coroutines.Dispatchers
@@ -702,6 +703,7 @@ object BusinessManager {
     private suspend fun getKeyPage(): KeyPageRespVO? = suspendCancellableCoroutine { cont ->
         NetApi.getIsKeyPage { keys ->
             cont.resume(keys)
+            cont.cancel()
         }
     }
 
@@ -1216,7 +1218,7 @@ object BusinessManager {
     fun getCurrentStatus(
         from: Int,
         bleDevice: BleDevice,
-        retryCount: Int = 3,
+        retryCount: Int = 0,
         timeoutCallBack: ((Boolean) -> Unit)? = null
     ) {
         LogUtil.i("getCurrentStatus - ${bleDevice.mac} - from : $from")
@@ -1364,6 +1366,7 @@ object BusinessManager {
             ModBusController.controlKeyBuckle(false, keyBean.isLeft, dock.addr)
         }
         if (ticketFinished) {
+            mDeviceTakeList.removeIf { it.nfc == keyBean?.rfid }
             switchReadyMode(bleDevice)
         } else {
             // 上报隔离点状态
@@ -1702,10 +1705,10 @@ object BusinessManager {
                 checkEquipCount(0, true) { keyPair, lockMap ->
                     if (keyPair == null) {
                         ThreadUtils.runOnMain {
-
-                            val ctx = MyApplication.instance?.applicationContext!!
-                            val tipDialog = TipDialog(ctx)
-                            tipDialog.setTip(ctx.getString(R.string.key_take_error_tip))
+                            val tipDialog = TipDialog(SIKCore.getApplication())
+                            tipDialog.setTip(
+                                SIKCore.getApplication().getString(R.string.key_take_error_tip)
+                            )
                             tipDialog.setConfirmListener {
                                 tipDialog.dismiss()
                                 sendEventMsg(
@@ -1731,9 +1734,8 @@ object BusinessManager {
             }
         } ?: run {
             ThreadUtils.runOnMain {
-                val ctx = MyApplication.instance?.applicationContext!!
-                val tipDialog = TipDialog(ctx)
-                tipDialog.setTip(ctx.getString(R.string.key_take_error_tip))
+                val tipDialog = TipDialog(SIKCore.getApplication())
+                tipDialog.setTip(SIKCore.getApplication().getString(R.string.key_take_error_tip))
                 tipDialog.setConfirmListener {
                     tipDialog.dismiss()
                     sendEventMsg(
@@ -1938,6 +1940,7 @@ object BusinessManager {
     }
 
     fun logout(context: Context) {
+        reConnectKey()
         NetApi.logout()
         // 关所有有设备的卡扣
         dockList.filter { it.type == DOCK_TYPE_LOCK || it.type == DOCK_TYPE_PORTABLE }
@@ -1969,7 +1972,6 @@ object BusinessManager {
                     }
                 }
             }
-        reConnectKey()
         sendLoadingEventMsg(null, false)
         context.startActivity(Intent(context, LoginActivity::class.java))
     }

+ 5 - 0
app/src/main/java/com/grkj/iscs/model/bo/WorkTicketGetBO.kt

@@ -1,5 +1,6 @@
 package com.grkj.iscs.model.bo
 
+import com.grkj.iscs.BusinessManager.CAN_RETURN
 import com.grkj.iscs.MyApplication
 import com.grkj.iscs.R
 import com.grkj.iscs.util.NetApi
@@ -94,6 +95,10 @@ class WorkTicketGetBO {
         // 如果没有数据,默认本地完成且远程未完成
         if (data.isNullOrEmpty()) return true to false
 
+        if (!CAN_RETURN) {
+            return true to true
+        }
+
         var anyRemoteFinished = false
         //点位的rfid是否被刷到锁的rfid
         val pointRfidEqLockRfid = data?.any { dataDto ->