|
|
@@ -1,5 +1,6 @@
|
|
|
package com.grkj.iscs.features.main.fragment.job_manage
|
|
|
|
|
|
+import android.util.Log
|
|
|
import android.widget.TextView
|
|
|
import androidx.core.view.isVisible
|
|
|
import androidx.fragment.app.viewModels
|
|
|
@@ -11,6 +12,7 @@ import com.drake.brv.utils.linear
|
|
|
import com.drake.brv.utils.models
|
|
|
import com.drake.brv.utils.setup
|
|
|
import com.google.android.material.tabs.TabLayout
|
|
|
+import com.google.gson.Gson
|
|
|
import com.grkj.data.data.EventConstants
|
|
|
import com.grkj.data.data.MainDomainData
|
|
|
import com.grkj.data.data.Type
|
|
|
@@ -362,6 +364,41 @@ class MyTodoListFragment : BaseFragment<FragmentMyTodoListBinding>() {
|
|
|
return@setDebouncedClickListener
|
|
|
}
|
|
|
}
|
|
|
+ // 共锁人逻辑处理
|
|
|
+ if (listOf(OperationTypeEnum.COLOCK, OperationTypeEnum.RELEASE_COLOCK).contains(item.todoType)) {
|
|
|
+ val loginUsername = MainDomainData.userInfo?.userName ?: ""
|
|
|
+ val loginUserId = MainDomainData.userInfo?.userId ?: 0
|
|
|
+ // 先校验当前登录账号是否是作业创建者,是创建者共锁人允许在其账号内进行共锁
|
|
|
+ if (jobExecuteViewModel.ticketData?.createBy != loginUsername) {
|
|
|
+ // 如果登录的账号不是作业创建者,但是是共锁人之一并且任务未完成可以进行共锁
|
|
|
+ val user =
|
|
|
+ jobExecuteViewModel.ticketUser.find { user -> user.userRole == RoleEnum.JTCOLOCKER.roleKey && user.userId == loginUserId }
|
|
|
+ if (user != null) {
|
|
|
+ // 找到共锁人后,根据是上锁还是解锁判断是否可以进行操作
|
|
|
+ if (item.todoType == OperationTypeEnum.COLOCK && user.jobStatus == "1") {
|
|
|
+ showToast(CommonUtils.getStr("colocker_already_lock"))
|
|
|
+ return@setDebouncedClickListener
|
|
|
+ } else if (item.todoType == OperationTypeEnum.RELEASE_COLOCK && user.jobStatus == "2") {
|
|
|
+ showToast(CommonUtils.getStr("colocker_already_unlock"))
|
|
|
+ return@setDebouncedClickListener
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ showToast(CommonUtils.getStr("no_permission_to_handle"))
|
|
|
+ return@setDebouncedClickListener
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 确认流程鉴定
|
|
|
+ if (OperationTypeEnum.END == item.todoType) {
|
|
|
+ val step = jobExecuteViewModel.currentStepData
|
|
|
+ if (step?.enableLock == true && item.pointStatus.any { it != "1" }) {
|
|
|
+ showToast(CommonUtils.getStr("please_finish_lock"))
|
|
|
+ return@setDebouncedClickListener
|
|
|
+ } else if (step?.enableUnlock == true && item.pointStatus.any { it != "2" }) {
|
|
|
+ showToast(CommonUtils.getStr("please_finish_unlock"))
|
|
|
+ return@setDebouncedClickListener
|
|
|
+ }
|
|
|
+ }
|
|
|
TipDialog.showInfo(viewModel.getHandleTip(item), onConfirmClick = {
|
|
|
jobExecuteViewModel.getWorkflowModes().observe(this) {
|
|
|
jobExecuteViewModel.ticketId = item.ticketId
|
|
|
@@ -486,6 +523,13 @@ class MyTodoListFragment : BaseFragment<FragmentMyTodoListBinding>() {
|
|
|
if ((currentStep.enableColock || currentStep.enableReleaseColock) && jobExecuteViewModel.ticketPoints.all { point -> point.pointStatus == "1" }) {
|
|
|
jobExecuteViewModel.getUserIdByCardRfid(it.rfidNo).observe(this) { userId ->
|
|
|
userId?.let {
|
|
|
+ if (MainDomainData.userInfo?.userName != jobExecuteViewModel.ticketData?.createBy) {
|
|
|
+ // 不是创建者,只允许在自己的账号中进行共锁
|
|
|
+ if (userId != MainDomainData.userInfo?.userId) {
|
|
|
+ showToast(CommonUtils.getStr("no_permission_to_handle"))
|
|
|
+ return@observe
|
|
|
+ }
|
|
|
+ }
|
|
|
val isJobCardUser = jobExecuteViewModel.ticketUser.filter { colocker ->
|
|
|
colocker.userRole?.contains(RoleEnum.JTCOLOCKER.roleKey) == true
|
|
|
}.find { colocker -> colocker.userId == userId }
|