Browse Source

refactor(更新)
- 自动确认失败的问题处理

周文健 4 tháng trước cách đây
mục cha
commit
6a555cf0c0

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

@@ -421,7 +421,11 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
                         viewModel.getUserIdByCardRfid(it.rfidNo).observe(this) { userId ->
                             userId?.let {
                                 val isJobCardUser =
-                                    viewModel.ticketUser.find { it.userId == userId }
+                                    viewModel.ticketUser.filter {
+                                        it.userRole?.contains(
+                                            RoleEnum.JTCOLOCKER.roleKey
+                                        ) == true
+                                    }.find { it.userId == userId }
                                 isJobCardUser?.let { colocker ->
                                     if (colocker.jobStatus == "0" && currentWorkflowStep.enableColock) {
                                         logger.info("添加共锁")
@@ -500,7 +504,7 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
     private fun checkStepComplete() {
         val workflowStep =
             viewModel.workflowSteps.find { it.stepId == viewModel.currentStepData?.workflowStepId }
-        if (viewModel.stepConditionsComplete(workflowStep) && workflowStep?.confirmType == 0) {
+        if (viewModel.stepConditionsComplete(workflowStep) && workflowStep?.confirmType != 0) {
             viewModel.currentStepData = viewModel.ticketStep.firstOrNull { it.stepStatus == "0" }
             logger.info("当前步骤数据:${viewModel.currentStepData}")
             viewModel.currentStepData?.let {
@@ -531,13 +535,13 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
         binding.finishJob.isVisible = false
         binding.stepTipTv.isVisible = viewModel.needShowTip()
         binding.stepTipTv.text = viewModel.getCurrentStepTip()
+        binding.lockInfo.text =
+            "${viewModel.ticketPoints.size}/${viewModel.ticketPoints.count { it.pointStatus?.toInt() ?: 0 >= 1 }}/${viewModel.ticketPoints.count { it.pointStatus == "2" }}"
+        binding.colockInfo.text =
+            "${viewModel.ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }.size}/${viewModel.ticketUser.count { it.userRole == RoleEnum.JTCOLOCKER.roleKey && it.jobStatus?.toInt() ?: 0 >= 1 }}/${viewModel.ticketUser.count { it.userRole == RoleEnum.JTCOLOCKER.roleKey && it.jobStatus == "2" }}"
         if (viewModel.currentStepData?.stepIndex == null) {
             binding.finishJob.isVisible = true
         } else {
-            binding.lockInfo.text =
-                "${viewModel.ticketPoints.size}/${viewModel.ticketPoints.count { it.pointStatus?.toInt() ?: 0 >= 1 }}/${viewModel.ticketPoints.count { it.pointStatus == "2" }}"
-            binding.colockInfo.text =
-                "${viewModel.ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }.size}/${viewModel.ticketUser.count { it.userRole == RoleEnum.JTCOLOCKER.roleKey && it.jobStatus?.toInt() ?: 0 >= 1 }}/${viewModel.ticketUser.count { it.userRole == RoleEnum.JTCOLOCKER.roleKey && it.jobStatus == "2" }}"
             val currentStep =
                 viewModel.workflowSteps.find { it.stepId == viewModel.currentStepData?.workflowStepId }
             when {

+ 2 - 1
app/src/main/java/com/grkj/iscs/features/main/viewmodel/exception_manage/ExceptionJobViewModel.kt

@@ -3,6 +3,7 @@ package com.grkj.iscs.features.main.viewmodel.exception_manage
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
 import com.grkj.data.data.DictConstants
+import com.grkj.data.enums.JobTicketStatusEnum
 import com.grkj.data.enums.RoleEnum
 import com.grkj.data.model.dos.IsJobTicketStep
 import com.grkj.data.model.dos.WorkflowMode
@@ -120,7 +121,7 @@ class ExceptionJobViewModel @Inject constructor(
                         ticketData?.ticketStatus =
                             currentWorkflowStep?.getTicketStatus() ?: ""
                         jobTicketRepository.updateTicketDataStatus(
-                            ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: 0
+                            ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: JobTicketStatusEnum.PROGRESSING.status.toInt()
                         )
                     }
                 } else {

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

@@ -5,6 +5,7 @@ import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.liveData
 import com.grkj.data.data.MainDomainData
 import com.grkj.data.di.RepositoryManager
+import com.grkj.data.enums.JobTicketStatusEnum
 import com.grkj.data.enums.RoleEnum
 import com.grkj.data.model.dos.IsJobTicketStep
 import com.grkj.data.model.dos.WorkflowMode
@@ -156,8 +157,9 @@ class JobExecuteViewModel @Inject constructor(
             val ticketDetail = RepositoryManager.jobTicketRepo.getTicketDetail(ticketId)
             val workflowStep =
                 workflowSteps.find { it.stepId == currentStepData?.workflowStepId }
+                    ?: workflowSteps.last()
             val role = ticketDetail?.ticketUserVOList?.find {
-                it.userId == MainDomainData.userInfo?.userId && workflowStep?.currentUserCanConfirm() == true
+                it.userId == MainDomainData.userInfo?.userId
             }
             if (role == null) {
                 ThreadUtils.runOnMain {
@@ -404,7 +406,7 @@ class JobExecuteViewModel @Inject constructor(
                         ticketData?.ticketStatus =
                             currentWorkflowStep?.getTicketStatus() ?: ""
                         jobTicketRepository.updateTicketDataStatus(
-                            ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: 0
+                            ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: JobTicketStatusEnum.PROGRESSING.status.toInt()
                         )
                     }
                 } else {
@@ -440,7 +442,9 @@ class JobExecuteViewModel @Inject constructor(
                     it.stepId == currentStepData?.workflowStepId
                 }
                 jobTicketRepository.updateTicketDataStatus(
-                    ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: 0
+                    ticketId,
+                    currentWorkflowStep?.getTicketStatus()?.toInt()
+                        ?: JobTicketStatusEnum.PROGRESSING.status.toInt()
                 )
                 emit(true)
             } ?: emit(false)
@@ -461,7 +465,7 @@ class JobExecuteViewModel @Inject constructor(
                     it.stepId == currentStepData?.workflowStepId
                 }
                 jobTicketRepository.updateTicketDataStatus(
-                    ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: 0
+                    ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: JobTicketStatusEnum.PROGRESSING.status.toInt()
                 )
                 emit(true)
             } ?: emit(false)
@@ -555,6 +559,11 @@ class JobExecuteViewModel @Inject constructor(
                 workflowStep
             ) && coLockStepLocked(workflowStep)
 
+            //共锁、解除共锁一个步骤
+            workflowStep?.enableColock == true && workflowStep.enableReleaseColock == true -> releaseCoLockStepUnLocked(
+                workflowStep
+            )
+
             //解除共锁、解锁一个步骤
             workflowStep?.enableUnlock == true && workflowStep.enableReleaseColock == true -> unLockStepLocked(
                 workflowStep

+ 2 - 0
app/src/main/res/layout-land/fragment_select_memeber.xml

@@ -129,6 +129,7 @@
                             android:paddingHorizontal="@dimen/common_spacing_2x"
                             android:paddingVertical="@dimen/common_spacing_small"
                             android:text="@string/select"
+                            android:textSize="@dimen/common_btn_text_size"
                             android:textColor="@color/white" />
                     </LinearLayout>
 
@@ -173,6 +174,7 @@
                             android:paddingHorizontal="@dimen/common_spacing_2x"
                             android:paddingVertical="@dimen/common_spacing_small"
                             android:text="@string/select"
+                            android:textSize="@dimen/common_btn_text_size"
                             android:textColor="@color/white" />
                     </LinearLayout>
 

+ 2 - 0
app/src/main/res/layout/fragment_select_memeber.xml

@@ -127,6 +127,7 @@
                             android:paddingHorizontal="@dimen/common_spacing_2x"
                             android:paddingVertical="@dimen/common_spacing_small"
                             android:text="@string/select"
+                            android:textSize="@dimen/common_btn_text_size"
                             android:textColor="@color/white" />
                     </LinearLayout>
 
@@ -171,6 +172,7 @@
                             android:paddingHorizontal="@dimen/common_spacing_2x"
                             android:paddingVertical="@dimen/common_spacing_small"
                             android:text="@string/select"
+                            android:textSize="@dimen/common_btn_text_size"
                             android:textColor="@color/white" />
                     </LinearLayout>
 

+ 1 - 1
app/src/main/res/values-zh/strings.xml

@@ -379,7 +379,7 @@
     <string name="please_complete_colock">请完成共锁</string>
     <string name="please_complete_release_colock">请先完成共锁解除</string>
     <string name="has_lock_not_unlocked">您还有%s点位未解锁</string>
-    <string name="please_do_colock">请共锁人完成共锁</string>
+    <string name="please_do_colock">请共锁人完成共锁</string>
     <string name="please_done_operation">请先完成%s</string>
     <string name="set_fingerprint_title">设置指纹</string>
     <string name="fingerprint_code">指纹编号</string>

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -382,7 +382,7 @@
     <string name="please_complete_colock">请完成共锁</string>
     <string name="please_complete_release_colock">请先完成共锁解除</string>
     <string name="has_lock_not_unlocked">您还有%s点位未解锁</string>
-    <string name="please_do_colock">请共锁人完成共锁</string>
+    <string name="please_do_colock">请共锁人完成共锁</string>
     <string name="please_done_operation">请先完成%s</string>
     <string name="set_fingerprint_title">设置指纹</string>
     <string name="fingerprint_code">指纹编号</string>

+ 2 - 1
ui-base/src/main/java/com/grkj/ui_base/business/BleBusinessManager.kt

@@ -7,6 +7,7 @@ import com.google.gson.Gson
 import com.grkj.data.data.DictConstants
 import com.grkj.data.data.MainDomainData
 import com.grkj.data.di.RepositoryManager
+import com.grkj.data.enums.JobTicketStatusEnum
 import com.grkj.data.model.dos.IsJobTicketStep
 import com.grkj.data.model.local.DeviceTakeUpdate
 import com.grkj.data.model.local.UpdateKeyReturn
@@ -629,7 +630,7 @@ object BleBusinessManager {
                                     }
                                     RepositoryManager.jobTicketRepo.updateTicketDataStatus(
                                         data.taskCode?.toLong()!!,
-                                        currentWorkflowStep?.getTicketStatus()?.toInt() ?: 0
+                                        currentWorkflowStep?.getTicketStatus()?.toInt() ?: JobTicketStatusEnum.PROGRESSING.status.toInt()
                                     )
                                 }
                                 data.taskCode?.toLong()?.let {

+ 9 - 3
ui-base/src/main/java/com/grkj/ui_base/business/ModbusBusinessManager.kt

@@ -373,9 +373,6 @@ object ModbusBusinessManager {
                     }
                 }
             }
-            Executor.delayOnMain(200) {
-                listeners.forEach { it.callBack(dockBean) }
-            }
         }
         Executor.delayOnMain(200) {
             if (!ISCSConfig.isInit) {
@@ -444,6 +441,9 @@ object ModbusBusinessManager {
                                         }
                                     }
                                 }
+                                Executor.delayOnMain(200) {
+                                    listeners.forEach { it.callBack(dockBean) }
+                                }
                             }
                         }
                     }
@@ -541,6 +541,9 @@ object ModbusBusinessManager {
                                         true, keyBean.idx, dockBean.addr
                                     )
                                 }
+                                Executor.delayOnMain(200) {
+                                    listeners.forEach { it.callBack(dockBean) }
+                                }
                             }
                         }
                     }
@@ -555,6 +558,9 @@ object ModbusBusinessManager {
                 DeviceTakeUpdateEvent(DeviceConst.DEVICE_TYPE_KEY, keyBean.rfid),
                 keyBean.rfid
             )
+            Executor.delayOnMain(200) {
+                listeners.forEach { it.callBack(dockBean) }
+            }
         }
     }