Browse Source

fix(作业)
- 优化钥匙归还逻辑
- 优化作业执行步骤状态提示
- 修复作业票协作者状态判断错误

周文健 3 months ago
parent
commit
62bee1cfe6

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

@@ -668,13 +668,11 @@ class JobExecuteViewModel @Inject constructor(
     fun getStepErrorTip(workflowStep: IsJobTicketStepDataVo?): Pair<String, Int?> {
         return when {
 
-            ((ticketData?.createBy == MainDomainData.userInfo?.userName && workflowStep?.confirmUser == null) || workflowStep?.currentUserCanConfirm() == true) &&
-                    (workflowStep?.enableSetLocker == true || workflowStep?.enableSetColocker == true) -> {
+            ((ticketData?.createBy == MainDomainData.userInfo?.userName && workflowStep?.confirmUser == null) || workflowStep?.currentUserCanConfirm() == true) && (workflowStep?.enableSetLocker == true || workflowStep?.enableSetColocker == true) -> {
                 CommonUtils.getStr(R.string.please_select_member).toString() to null
             }
 
-            ((ticketData?.createBy == MainDomainData.userInfo?.userName && workflowStep?.confirmUser == null) || workflowStep?.currentUserCanConfirm() == true) &&
-                    (workflowStep?.enableLock == true || workflowStep?.enableColock == true || workflowStep?.enableReleaseColock == true || workflowStep?.enableUnlock == true) -> {
+            ((ticketData?.createBy == MainDomainData.userInfo?.userName && workflowStep?.confirmUser == null) || workflowStep?.currentUserCanConfirm() == true) && (workflowStep?.enableLock == true || workflowStep?.enableColock == true || workflowStep?.enableReleaseColock == true || workflowStep?.enableUnlock == true) -> {
                 var tip = ""
                 var index: Int? = null
                 if (workflowStep.enableLock) {
@@ -736,13 +734,11 @@ class JobExecuteViewModel @Inject constructor(
     fun getCurrentStepTip(): String {
         val currentWorkflowStep = currentStepData
         return when {
-            ((ticketData?.createBy == MainDomainData.userInfo?.userName && currentWorkflowStep?.confirmUser == null) || currentWorkflowStep?.currentUserCanConfirm() == true) &&
-                    (currentWorkflowStep?.enableSetLocker == true || currentWorkflowStep?.enableSetColocker == true) -> {
+            ((ticketData?.createBy == MainDomainData.userInfo?.userName && currentWorkflowStep?.confirmUser == null) || currentWorkflowStep?.currentUserCanConfirm() == true) && (currentWorkflowStep?.enableSetLocker == true || currentWorkflowStep?.enableSetColocker == true) -> {
                 CommonUtils.getStr(R.string.please_select_member).toString()
             }
 
-            ((ticketData?.createBy == MainDomainData.userInfo?.userName && currentWorkflowStep?.confirmUser == null) || currentWorkflowStep?.currentUserCanConfirm() == true) &&
-                    (currentWorkflowStep?.enableLock == true || currentWorkflowStep?.enableColock == true || currentWorkflowStep?.enableReleaseColock == true || currentWorkflowStep?.enableUnlock == true) -> {
+            ((ticketData?.createBy == MainDomainData.userInfo?.userName && currentWorkflowStep?.confirmUser == null) || currentWorkflowStep?.currentUserCanConfirm() == true) && (currentWorkflowStep?.enableLock == true || currentWorkflowStep?.enableColock == true || currentWorkflowStep?.enableReleaseColock == true || currentWorkflowStep?.enableUnlock == true) -> {
                 var tip = ""
                 if (currentWorkflowStep.enableLock) {
                     if (ticketPoints.any { it.pointStatus != "1" } && ticketKey.isEmpty()) {
@@ -756,11 +752,11 @@ class JobExecuteViewModel @Inject constructor(
                     }
                 }
                 if (currentWorkflowStep.enableColock && ticketPoints.all { it.pointStatus == "1" } && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
-                        .any { it.jobStatus != "1" }) {
+                        .any { it.jobStatus == "0" }) {
                     tip = CommonUtils.getStr(R.string.please_do_colock).toString()
                 }
                 if (currentWorkflowStep.enableReleaseColock && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
-                        .any { it.jobStatus != "2" }) {
+                        .none { it.jobStatus == "0" }) {
                     tip =
                         CommonUtils.getStr(com.grkj.ui_base.R.string.please_do_uncolock).toString()
                 }

+ 23 - 38
ui-base/src/main/java/com/grkj/ui_base/business/BleBusinessManager.kt

@@ -527,44 +527,29 @@ object BleBusinessManager {
                 } else {
                     // 当前策略:作业票未完成禁止归还钥匙
                     LoadingEvent.sendLoadingEvent()
-                    if (workTicketGet.data?.any { it.dataList?.any { it.target == 0 } == true } == true) {
-                        TipDialog.show(
-                            msg = CommonUtils.getStr(R.string.lock_key_return_tip)!!,
-                            onConfirmClick = {
-                                ThreadUtils.runOnIO {
-                                    handleKeyReturn(
-                                        bleDevice,
-                                        workTicketGet,
-                                        finishedStatus.second,
-                                        forceReturn = true
-                                    )
-                                }
-                            },
-                            onCancelClick = {
-                                PopTip.build().tip(CommonUtils.getStr(R.string.continue_the_ticket))
-                                BleManager.getInstance().disconnect(bleDevice)
-                                BleConnectionManager.deviceList.removeIf { it.bleDevice.mac == bleDevice.mac }
-                                // 打开卡扣,防止初始化的时候选择不处理钥匙导致无法使用
-                                val dock = ModBusController.getDockByKeyMac(bleDevice.mac)
-                                val keyBean = dock?.getKeyList()?.find { it.mac == bleDevice.mac }
-                                keyBean?.let {
-                                    ModBusController.controlKeyBuckle(true, keyBean.idx, dock.addr)
-                                }
-                            })
-                    } else {
-                        TipDialog.show(
-                            msg = CommonUtils.getStr(R.string.key_return_tip)!!, onConfirmClick = {
-                                PopTip.build().tip(CommonUtils.getStr(R.string.continue_the_ticket))
-                                BleManager.getInstance().disconnect(bleDevice)
-                                BleConnectionManager.deviceList.removeIf { it.bleDevice.mac == bleDevice.mac }
-                                // 打开卡扣,防止初始化的时候选择不处理钥匙导致无法使用
-                                val dock = ModBusController.getDockByKeyMac(bleDevice.mac)
-                                val keyBean = dock?.getKeyList()?.find { it.mac == bleDevice.mac }
-                                keyBean?.let {
-                                    ModBusController.controlKeyBuckle(true, keyBean.idx, dock.addr)
-                                }
-                            })
-                    }
+                    TipDialog.show(
+                        msg = CommonUtils.getStr(R.string.lock_key_return_tip)!!,
+                        onConfirmClick = {
+                            ThreadUtils.runOnIO {
+                                handleKeyReturn(
+                                    bleDevice,
+                                    workTicketGet,
+                                    finishedStatus.second,
+                                    forceReturn = true
+                                )
+                            }
+                        },
+                        onCancelClick = {
+                            PopTip.build().tip(CommonUtils.getStr(R.string.continue_the_ticket))
+                            BleManager.getInstance().disconnect(bleDevice)
+                            BleConnectionManager.deviceList.removeIf { it.bleDevice.mac == bleDevice.mac }
+                            // 打开卡扣,防止初始化的时候选择不处理钥匙导致无法使用
+                            val dock = ModBusController.getDockByKeyMac(bleDevice.mac)
+                            val keyBean = dock?.getKeyList()?.find { it.mac == bleDevice.mac }
+                            keyBean?.let {
+                                ModBusController.controlKeyBuckle(true, keyBean.idx, dock.addr)
+                            }
+                        })
                 }
             }
         }