Эх сурвалжийг харах

refactor(更新)
- 提取钥匙连接逻辑
- 优化代码

周文健 3 сар өмнө
parent
commit
bf2e135c73

+ 2 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/JobExecuteFragment.kt

@@ -603,6 +603,7 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
         binding.cancelJob.isVisible = false
         binding.finishJob.isVisible = false
         FlashTipEvent.sendFlashTipEvent(viewModel.getCurrentStepTip())
+        viewModel.checkMyTodoForHandleKey().observe(this){}
         binding.lockInfo.text =
             "${viewModel.ticketPoints.size}/${viewModel.ticketPoints.count { it.pointStatus?.toInt() ?: 0 >= 1 }}/${viewModel.ticketPoints.count { it.pointStatus == "2" }}"
         binding.colockInfo.text =
@@ -640,7 +641,7 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
 
     override fun initData() {
         super.initData()
-        viewModel.checkMyTodoForConnectKey().observe(this) {}
+        viewModel.checkMyTodoForHandleKey().observe(this) {}
         if (!GlobalDataTempStore.getInstance().hasData(DataTransferConstants.KEY_JOB_TICKET_ID)) {
             PopTip.build().tip(R.string.job_lost)
             navController.popBackStack()

+ 2 - 7
app/src/main/java/com/grkj/iscs/features/main/viewmodel/MainViewModel.kt

@@ -2,16 +2,11 @@ package com.grkj.iscs.features.main.viewmodel
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
-import com.clj.fastble.BleManager
 import com.grkj.data.data.MainDomainData
 import com.grkj.data.logic.IJobTicketLogic
-import com.grkj.data.model.local.isMyTodo
-import com.grkj.data.model.extension.splitTodoSteps
-import com.grkj.data.model.extension.toTodoVo
 import com.grkj.shared.utils.extension.startsWith
 import com.grkj.ui_base.base.BaseViewModel
 import com.grkj.ui_base.business.BleBusinessManager
-import com.grkj.ui_base.business.BleBusinessManager.connectExistsKey
 import com.grkj.ui_base.business.DataBusiness
 import com.grkj.ui_base.business.ModbusBusinessManager
 import com.grkj.ui_base.config.ISCSConfig
@@ -63,7 +58,7 @@ class MainViewModel @Inject constructor(
                         ) {
                             when (it) {
                                 0x02.toByte() -> {
-                                    checkMyTodoForHandleKey(bleBean.bleDevice.mac)
+                                    DataBusiness.checkMyTodoForHandleKey(bleBean.bleDevice.mac)
                                 }
                             }
                         }
@@ -77,7 +72,7 @@ class MainViewModel @Inject constructor(
      */
     fun checkMyTodoForHandleKey(mac: String? = null): LiveData<Boolean> {
         return liveData(Dispatchers.IO) {
-            val result = DataBusiness.checkMyTodoForHandleKey()
+            val result = DataBusiness.checkMyTodoForHandleKey(mac)
             logger.info("检查是否需要连接:${result}")
             emit(result)
         }

+ 3 - 23
app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/JobExecuteViewModel.kt

@@ -2,7 +2,6 @@ package com.grkj.iscs.features.main.viewmodel.job_manage
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
-import com.clj.fastble.BleManager
 import com.grkj.data.data.MainDomainData
 import com.grkj.data.di.LogicManager
 import com.grkj.data.enums.JobTicketStatusEnum
@@ -23,12 +22,10 @@ import com.grkj.data.model.vo.SysBiometricDataVo
 import com.grkj.data.logic.IJobTicketLogic
 import com.grkj.data.logic.IWorkflowLogic
 import com.grkj.data.logic.impl.standard.UserLogic
-import com.grkj.data.model.local.isMyTodo
 import com.grkj.iscs.R
-import com.grkj.data.model.extension.splitTodoSteps
-import com.grkj.data.model.extension.toTodoVo
 import com.grkj.ui_base.base.BaseViewModel
 import com.grkj.ui_base.business.BleBusinessManager
+import com.grkj.ui_base.business.DataBusiness
 import com.grkj.ui_base.business.ModbusBusinessManager
 import com.grkj.ui_base.dialog.TipDialog
 import com.grkj.ui_base.utils.CommonUtils
@@ -802,26 +799,9 @@ class JobExecuteViewModel @Inject constructor(
     /**
      * 为连接钥匙检查待办
      */
-    fun checkMyTodoForConnectKey(): LiveData<Int> {
+    fun checkMyTodoForHandleKey(): LiveData<Int> {
         return liveData(Dispatchers.IO) {
-            val userInfo = MainDomainData.userInfo
-            if (userInfo == null) {
-                emit(0) // or emit(false) 根据语义定义
-                return@liveData
-            }
-
-            val userId = userInfo.userId
-            val userName = userInfo.userName
-            val todoItemData = jobTicketRepository.getMyTodoList()
-            val myTodoStepJoin = todoItemData.filter { it.isMyTodo(userId, userName) }
-            val todoItemVos =
-                myTodoStepJoin.map { it.toTodoVo(todoItemData.filter { temp -> it.ticketId == temp.ticketId }) }
-                    .toMutableList()
-            val todoData = splitTodoSteps(todoItemVos, 1)
-            if (BleManager.getInstance().allConnectedDevice.isEmpty() && (todoData.first.any { it.enableLock || it.enableUnlock } || todoData.second.any { it.enableLock || it.enableUnlock })) {
-                BleBusinessManager.connectExistsKey()
-            }
-            emit(todoData.first.size + todoData.second.size)
+            DataBusiness.checkMyTodoForHandleKey()
         }
     }
 

+ 1 - 1
app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/MyTodoViewModel.kt

@@ -80,7 +80,7 @@ class MyTodoViewModel @Inject constructor(
                     .toMutableList()
             splitTodoSteps(todoItemVos, 1)
             if (BleManager.getInstance().allConnectedDevice.isEmpty() && (waitData.any { it.enableLock || it.enableUnlock } || todoData.any { it.enableLock || it.enableUnlock })) {
-                BleBusinessManager.connectExistsKey()
+                DataBusiness.checkMyTodoForHandleKey()
             }
             emit(true)
         }