|
|
@@ -6,6 +6,7 @@ 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.enums.StepAction
|
|
|
import com.grkj.data.model.dos.IsJobTicketStep
|
|
|
import com.grkj.data.model.dos.WorkflowMode
|
|
|
import com.grkj.data.model.local.DeviceTakeUpdate
|
|
|
@@ -22,6 +23,8 @@ 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.TodoStepJoin
|
|
|
+import com.grkj.data.model.local.hasAnyHardwareOperationFunction
|
|
|
import com.grkj.iscs.R
|
|
|
import com.grkj.ui_base.base.BaseViewModel
|
|
|
import com.grkj.ui_base.business.BleBusinessManager
|
|
|
@@ -794,4 +797,66 @@ class JobExecuteViewModel @Inject constructor(
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否我的权限可以处理确认待办
|
|
|
+ */
|
|
|
+ fun isMyPermissionTodoConfirm(): Boolean {
|
|
|
+ val userId = MainDomainData.userInfo?.userId
|
|
|
+ val userName = MainDomainData.userInfo?.userName
|
|
|
+ if (userId == null || userName == null) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ val isMyTodo = currentStepData?.isMyTodoConfirm(userId, userName) == true
|
|
|
+ return isMyTodo
|
|
|
+ }
|
|
|
+
|
|
|
+ fun IsJobTicketStepDataVo.isMyTodoConfirm(
|
|
|
+ currentUserId: Long,
|
|
|
+ currentUserName: String
|
|
|
+ ): Boolean {
|
|
|
+ val isCreator = createBy == currentUserName
|
|
|
+
|
|
|
+ // ---- 判定共锁/解除共锁(由创建者) ----=
|
|
|
+ //todo 共锁人的共锁暂时不算代办 currentUserId in colockerUserId
|
|
|
+ if (enableColock && isCreator) return true
|
|
|
+ if (enableReleaseColock && isCreator) return true
|
|
|
+
|
|
|
+ // ---- 判定结束作业(由创建者) ----
|
|
|
+ if (enableEndJob && isCreator) return true
|
|
|
+
|
|
|
+ // ---- 普通步骤确认 ----
|
|
|
+ val confirmToCurrentUser =
|
|
|
+ confirmUser == currentUserId || (isCreator && confirmUser == null)
|
|
|
+
|
|
|
+ return !hasAnyHardwareOperationFunction() && confirmToCurrentUser
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否我的权限可以处理硬件待办
|
|
|
+ */
|
|
|
+ fun isMyPermissionTodoHardware(): Boolean {
|
|
|
+ val userId = MainDomainData.userInfo?.userId
|
|
|
+ val userName = MainDomainData.userInfo?.userName
|
|
|
+ if (userId == null || userName == null) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return currentStepData?.isMyTodoHardware(userId, userName) == true
|
|
|
+ }
|
|
|
+
|
|
|
+ fun IsJobTicketStepDataVo.isMyTodoHardware(
|
|
|
+ currentUserId: Long,
|
|
|
+ currentUserName: String
|
|
|
+ ): Boolean {
|
|
|
+ // ---- 判定锁/解锁 ----
|
|
|
+ if (enableLock && ticketUser.filter { it.userId == currentUserId }.map { it.userRole }
|
|
|
+ .contains(RoleEnum.JTLOCKER.roleKey)) return true
|
|
|
+ if (enableUnlock && ticketUser.filter { it.userId == currentUserId }.map { it.userRole }
|
|
|
+ .contains(RoleEnum.JTLOCKER.roleKey)) return true
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ // WorkflowStep 扩展:判定是否包含任何硬件相关动作
|
|
|
+ fun IsJobTicketStepDataVo.hasAnyHardwareOperationFunction(): Boolean =
|
|
|
+ enableLock || enableColock || enableReleaseColock || enableUnlock
|
|
|
}
|