|
|
@@ -93,15 +93,15 @@ class JobExecuteViewModel @Inject constructor(
|
|
|
fun updateLockerAndColockerData(): LiveData<Boolean> {
|
|
|
return liveData(Dispatchers.IO) {
|
|
|
jobTicketRepository.updateClockerAndColockerData(
|
|
|
- ticketData!!.ticketId, currentStepData, selectedLockerData, selecteColockerData
|
|
|
+ ticketData!!.ticketId, selectedLockerData, selecteColockerData
|
|
|
)
|
|
|
ticketStep = jobTicketRepository.getJobTicketStepDataByTicketId(ticketId)
|
|
|
- val currentWorkflowStep = workflowSteps.find {
|
|
|
- it.stepId == ticketStep.firstOrNull { it.stepStatus == "0" }?.workflowStepId
|
|
|
- }
|
|
|
- jobTicketRepository.updateTicketDataStatus(
|
|
|
- ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: 0
|
|
|
- )
|
|
|
+ ticketUser = jobTicketRepository.getJobTicketUserDataByTicketId(ticketId)
|
|
|
+ val tempJobTicketUserId = jobTicketRepository.getTicketUsersByTicketId(ticketId)
|
|
|
+ selectedLockerData =
|
|
|
+ tempJobTicketUserId.filter { it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) }
|
|
|
+ selecteColockerData =
|
|
|
+ tempJobTicketUserId.filter { it.roleKeys.contains(RoleEnum.JTCOLOCKER.roleKey) }
|
|
|
emit(true)
|
|
|
}
|
|
|
}
|
|
|
@@ -362,6 +362,27 @@ class JobExecuteViewModel @Inject constructor(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新步骤状态(步骤返回)
|
|
|
+ */
|
|
|
+ fun updateStepStatusBack(jobTicketStepDataVo: IsJobTicketStepDataVo): LiveData<Boolean> {
|
|
|
+ return liveData(Dispatchers.IO) {
|
|
|
+ val ticketStepData = BeanUtils.copyProperties(
|
|
|
+ jobTicketStepDataVo, IsJobTicketStep::class.java
|
|
|
+ )
|
|
|
+ ticketStepData?.let {
|
|
|
+ jobTicketRepository.updateTicketStepData(it)
|
|
|
+ val currentWorkflowStep = workflowSteps.find {
|
|
|
+ it.stepId == currentStepData?.workflowStepId
|
|
|
+ }
|
|
|
+ jobTicketRepository.updateTicketDataStatus(
|
|
|
+ ticketId, currentWorkflowStep?.getTicketStatus()?.toInt() ?: 0
|
|
|
+ )
|
|
|
+ emit(true)
|
|
|
+ } ?: emit(false)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 上锁步骤是否上锁完成
|
|
|
*/
|
|
|
@@ -468,51 +489,53 @@ class JobExecuteViewModel @Inject constructor(
|
|
|
*/
|
|
|
fun getStepErrorTip(workflowStep: WorkflowStep?): Pair<String, Int?> {
|
|
|
return when {
|
|
|
- workflowStep?.enableLock == true -> {
|
|
|
- return if (ticketPoints.any { it.pointStatus == "0" }) {
|
|
|
- CommonUtils.getStr(
|
|
|
- R.string.has_lock_not_locked,
|
|
|
- ticketPoints.filter { it.pointStatus == "0" }.map { it.pointName })
|
|
|
- .toString() to null
|
|
|
- } else if (workflowStep.enableColock == true && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
- .any { it.jobStatus == "0" }) {
|
|
|
- CommonUtils.getStr(R.string.please_complete_colock).toString() to 2
|
|
|
- } else {
|
|
|
- CommonUtils.getStr(com.grkj.ui_base.R.string.no_permission_to_handle)
|
|
|
- .toString() to null
|
|
|
- }
|
|
|
+ workflowStep?.enableSetLocker == true || workflowStep?.enableSetColocker == true -> {
|
|
|
+ CommonUtils.getStr(R.string.please_select_member).toString() to null
|
|
|
}
|
|
|
|
|
|
- workflowStep?.enableColock == true -> {
|
|
|
- if (ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
+ workflowStep?.enableLock == true || workflowStep?.enableColock == true ||
|
|
|
+ workflowStep?.enableReleaseColock == true || workflowStep?.enableUnlock == true -> {
|
|
|
+ var tip = ""
|
|
|
+ var index: Int? = null
|
|
|
+ if (workflowStep.enableLock) {
|
|
|
+ if (ticketPoints.any { it.pointStatus != "1" } && ticketKey.isEmpty()) {
|
|
|
+ tip = CommonUtils.getStr(com.grkj.ui_base.R.string.please_go_locking)
|
|
|
+ .toString()
|
|
|
+ index = 1
|
|
|
+ } else if (ticketPoints.any { it.pointStatus != "1" } && ticketKey.filter { it.ticketType == 0L }
|
|
|
+ .any { it.collectTime.isNullOrEmpty() }) {
|
|
|
+ tip =
|
|
|
+ CommonUtils.getStr(com.grkj.ui_base.R.string.please_return_key_after_locking)
|
|
|
+ .toString()
|
|
|
+ index = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (workflowStep.enableColock && ticketPoints.all { it.pointStatus == "1" } && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
.any { it.jobStatus != "1" }) {
|
|
|
- CommonUtils.getStr(R.string.please_complete_colock).toString() to 2
|
|
|
- } else {
|
|
|
- CommonUtils.getStr(com.grkj.ui_base.R.string.no_permission_to_handle)
|
|
|
- .toString() to null
|
|
|
+ tip = CommonUtils.getStr(R.string.please_do_colock).toString()
|
|
|
+ index = 2
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- workflowStep?.enableReleaseColock == true -> {
|
|
|
- if (ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
+ if (workflowStep.enableReleaseColock && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
.any { it.jobStatus != "2" }) {
|
|
|
- CommonUtils.getStr(
|
|
|
- R.string.has_lock_not_unlocked,
|
|
|
- ticketPoints.filter { it.pointStatus == "2" }.map { it.pointName })
|
|
|
- .toString() to 2
|
|
|
- } else {
|
|
|
- CommonUtils.getStr(com.grkj.ui_base.R.string.no_permission_to_handle)
|
|
|
- .toString() to null
|
|
|
+ tip =
|
|
|
+ CommonUtils.getStr(com.grkj.ui_base.R.string.please_do_uncolock).toString()
|
|
|
+ index = 2
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- workflowStep?.enableUnlock == true -> {
|
|
|
- if (ticketPoints.any { it.pointStatus != "2" }) {
|
|
|
- CommonUtils.getStr(R.string.has_lock_not_locked).toString() to 2
|
|
|
- } else {
|
|
|
- CommonUtils.getStr(com.grkj.ui_base.R.string.no_permission_to_handle)
|
|
|
- .toString() to null
|
|
|
+ if (workflowStep.enableUnlock && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
+ .all { it.jobStatus == "2" }) {
|
|
|
+ if (ticketPoints.any { it.pointStatus != "2" }) {
|
|
|
+ tip = CommonUtils.getStr(com.grkj.ui_base.R.string.please_go_unlocking)
|
|
|
+ .toString()
|
|
|
+ index = 1
|
|
|
+ } else if (ticketPoints.any { it.pointStatus != "2" } && ticketKey.filter { it.ticketType == 1L }
|
|
|
+ .any { it.collectTime.isNullOrEmpty() }) {
|
|
|
+ tip =
|
|
|
+ CommonUtils.getStr(com.grkj.ui_base.R.string.please_return_key_after_unlocking)
|
|
|
+ .toString()
|
|
|
+ index = 1
|
|
|
+ }
|
|
|
}
|
|
|
+ tip to index
|
|
|
}
|
|
|
|
|
|
else -> CommonUtils.getStr(com.grkj.ui_base.R.string.no_permission_to_handle)
|
|
|
@@ -556,16 +579,19 @@ class JobExecuteViewModel @Inject constructor(
|
|
|
.toString()
|
|
|
}
|
|
|
}
|
|
|
- if (currentWorkflowStep.enableColock && ticketUser.any { it.jobStatus != "1" }) {
|
|
|
+ if (currentWorkflowStep.enableColock && ticketPoints.all { it.pointStatus == "1" } && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
+ .any { it.jobStatus != "1" }) {
|
|
|
tip = CommonUtils.getStr(R.string.please_do_colock).toString()
|
|
|
}
|
|
|
- if (currentWorkflowStep.enableReleaseColock && ticketUser.any { it.jobStatus != "2" }) {
|
|
|
+ if (currentWorkflowStep.enableReleaseColock && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
+ .any { it.jobStatus != "2" }) {
|
|
|
tip =
|
|
|
CommonUtils.getStr(com.grkj.ui_base.R.string.please_do_uncolock).toString()
|
|
|
}
|
|
|
- if (currentWorkflowStep.enableUnlock && ticketUser.all { it.jobStatus == "2" }) {
|
|
|
+ if (currentWorkflowStep.enableUnlock && ticketUser.filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
+ .all { it.jobStatus == "2" }) {
|
|
|
if (ticketPoints.any { it.pointStatus != "2" }) {
|
|
|
- tip = CommonUtils.getStr(com.grkj.ui_base.R.string.please_do_uncolock)
|
|
|
+ tip = CommonUtils.getStr(com.grkj.ui_base.R.string.please_go_unlocking)
|
|
|
.toString()
|
|
|
} else if (ticketPoints.any { it.pointStatus != "2" } && ticketKey.filter { it.ticketType == 1L }
|
|
|
.any { it.collectTime.isNullOrEmpty() }) {
|