Prechádzať zdrojové kódy

fix(作业)
- 优化蓝牙钥匙归还逻辑,仅当锁状态与目标状态一致时才更新
- 优化作业票完成状态判断逻辑,增加锁状态与目标状态一致性校验

fix(流程管理)
- 修复流程模式列表切换状态时,因复用导致状态显示异常的问题

周文健 3 mesiacov pred
rodič
commit
007c975207

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

@@ -105,6 +105,7 @@ class WorkflowManageFragment : BaseFragment<FragmentWorkflowManageBinding>() {
         val itemBinding = holder.getBinding<ItemWorkflowManageBinding>()
         val item = holder.getModel<WorkflowModeVo>()
         itemBinding.name.text = item.modeName
+        itemBinding.status.setOnCheckedChangeListener(null)
         itemBinding.status.isChecked = item.status
         itemBinding.status.isEnabled = item.isPreset == false
         itemBinding.select.isEnabled = item.isPreset == false

+ 2 - 1
data/src/main/java/com/grkj/data/model/local/WorkTicketGet.kt

@@ -121,7 +121,8 @@ class WorkTicketGet {
                         cont.resume(true to true)
                     } else {
                         // 否则,用本地 dataList 的所有 closed 字段判断 localTicketFinish,本地没完成就返回 false
-                        val allClosed = item.dataList?.all { it.closed == 1 } == true
+                        val allClosed =
+                            item.dataList?.all { it.closed == 1 && it.status == it.target } == true
                         cont.resume(allClosed to false)
                     }
                 }

+ 14 - 13
ui-base/src/main/java/com/grkj/ui_base/business/BleBusinessManager.kt

@@ -659,20 +659,21 @@ object BleBusinessManager {
             val keyNfc = ModBusController.getKeyByMac(bleDevice.mac)?.rfid
             workTicketGet?.data?.forEach { data ->
                 val updateList = mutableListOf<LockPointUpdateReq>()
-                data.dataList?.filter { it.closed == 1 }?.forEach { dataListDTO ->
-                    data.taskCode?.toLong()?.let {
-                        SPUtils.returnKey(it)
+                data.dataList?.filter { it.closed == 1 && it.status == it.target }
+                    ?.forEach { dataListDTO ->
+                        data.taskCode?.toLong()?.let {
+                            SPUtils.returnKey(it)
+                        }
+                        val updateVO = LockPointUpdateReq(
+                            data.taskCode?.toLong(),
+                            dataListDTO.infoRfidNo,
+                            dataListDTO.equipRfidNo,
+                            keyNfc!!,
+                            dataListDTO.target,
+                            dataListDTO.status
+                        )
+                        updateList.add(updateVO)
                     }
-                    val updateVO = LockPointUpdateReq(
-                        data.taskCode?.toLong(),
-                        dataListDTO.infoRfidNo,
-                        dataListDTO.equipRfidNo,
-                        keyNfc!!,
-                        dataListDTO.target,
-                        dataListDTO.status
-                    )
-                    updateList.add(updateVO)
-                }
 
                 LoadingEvent.sendLoadingEvent()
                 val ticketId = data.taskCode?.toLong()