|
|
@@ -2,13 +2,17 @@ package com.grkj.iscs.features.main.fragment.exception_manage
|
|
|
|
|
|
import androidx.core.view.isVisible
|
|
|
import androidx.fragment.app.viewModels
|
|
|
+import com.drake.brv.utils.models
|
|
|
+import com.grkj.data.enums.NextJobPrompt
|
|
|
import com.grkj.data.model.vo.IsExceptionStandardVo
|
|
|
import com.grkj.iscs.R
|
|
|
import com.grkj.iscs.common.DataTransferConstants
|
|
|
import com.grkj.iscs.databinding.FragmentExceptionDetailBinding
|
|
|
+import com.grkj.iscs.features.main.viewmodel.exception_manage.ExceptionJobViewModel
|
|
|
import com.grkj.iscs.features.main.viewmodel.exception_manage.ExceptionViewModel
|
|
|
import com.grkj.ui_base.base.BaseFragment
|
|
|
import com.grkj.ui_base.dialog.TipDialog
|
|
|
+import com.grkj.ui_base.utils.CommonUtils
|
|
|
import com.sik.sikcore.data.GlobalDataTempStore
|
|
|
import com.sik.sikcore.extension.setDebouncedClickListener
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
|
@@ -19,6 +23,7 @@ import dagger.hilt.android.AndroidEntryPoint
|
|
|
@AndroidEntryPoint
|
|
|
class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
private val viewModel: ExceptionViewModel by viewModels()
|
|
|
+ private val exceptionJobViewModel: ExceptionJobViewModel by viewModels()
|
|
|
override fun getLayoutId(): Int {
|
|
|
return R.layout.fragment_exception_detail
|
|
|
}
|
|
|
@@ -26,26 +31,65 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
override fun initView() {
|
|
|
binding.back.setDebouncedClickListener { navController.popBackStack() }
|
|
|
binding.handleException.setDebouncedClickListener {
|
|
|
- TipDialog.showInfo(
|
|
|
- getString(R.string.confirm_handle_exception),
|
|
|
- onConfirmClick = {
|
|
|
- viewModel.handleException().observe(this) {
|
|
|
+ if (viewModel.exceptionData?.exceptionType.toString() == viewModel.exceptionType.find { it.dictLabel == "作业异常" }?.dictValue) {
|
|
|
+ if (exceptionJobViewModel.jobApplicationUseMasterKey()) {
|
|
|
+ handleExceptionCheck()
|
|
|
+ } else {
|
|
|
+ exceptionJobViewModel.checkJobHasCoLockAndCrossJob().observe(this) {
|
|
|
if (it.first) {
|
|
|
- TipDialog.showSuccess(
|
|
|
- getString(R.string.handle_exception_success),
|
|
|
+ TipDialog.show(
|
|
|
+ title = getString(R.string.warn),
|
|
|
+ msg = getString(R.string.handle_exception_will_release_all_colock),
|
|
|
+ dialogType = TipDialog.DialogType.ERROR,
|
|
|
onConfirmClick = {
|
|
|
- binding.handleException.isVisible = false
|
|
|
- binding.cancelException.isVisible = false
|
|
|
- },
|
|
|
- onCancelClick = {
|
|
|
- binding.handleException.isVisible = false
|
|
|
- binding.cancelException.isVisible = false
|
|
|
+ if (it.second) {
|
|
|
+ TipDialog.show(
|
|
|
+ title = getString(R.string.warn),
|
|
|
+ msg = getString(R.string.current_job_has_cross_job),
|
|
|
+ dialogType = TipDialog.DialogType.ERROR,
|
|
|
+ onConfirmClick = {
|
|
|
+ handleExceptionCheck()
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
} else {
|
|
|
- TipDialog.showError(it.second)
|
|
|
+ if (it.second) {
|
|
|
+ TipDialog.show(
|
|
|
+ title = getString(R.string.warn),
|
|
|
+ msg = getString(R.string.current_job_has_cross_job),
|
|
|
+ dialogType = TipDialog.DialogType.ERROR,
|
|
|
+ onConfirmClick = {
|
|
|
+ handleExceptionCheck()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ handleExceptionCheck()
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
- })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ TipDialog.showInfo(
|
|
|
+ getString(R.string.confirm_handle_exception),
|
|
|
+ onConfirmClick = {
|
|
|
+ viewModel.handleException().observe(this) {
|
|
|
+ if (it.first) {
|
|
|
+ TipDialog.showSuccess(
|
|
|
+ getString(R.string.handle_exception_success),
|
|
|
+ onConfirmClick = {
|
|
|
+ binding.handleException.isVisible = false
|
|
|
+ binding.cancelException.isVisible = false
|
|
|
+ },
|
|
|
+ onCancelClick = {
|
|
|
+ binding.handleException.isVisible = false
|
|
|
+ binding.cancelException.isVisible = false
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ TipDialog.showError(it.second)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
binding.cancelException.setDebouncedClickListener {
|
|
|
TipDialog.showInfo(getString(R.string.confirm_cancel_exception), onConfirmClick = {
|
|
|
@@ -69,12 +113,127 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private fun handleExceptionCheck() {
|
|
|
+ exceptionJobViewModel.checkJobNeedLockOrUnlock().observe(this) {
|
|
|
+ when (it) {
|
|
|
+ NextJobPrompt.NO_NEW_JOB -> {
|
|
|
+ TipDialog.showInfo(
|
|
|
+ getString(R.string.confirm_handle_exception),
|
|
|
+ onConfirmClick = {
|
|
|
+ viewModel.handleException().observe(this) {
|
|
|
+ if (it.first) {
|
|
|
+ TipDialog.showSuccess(
|
|
|
+ getString(R.string.handle_exception_success),
|
|
|
+ onConfirmClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ },
|
|
|
+ onCancelClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ TipDialog.showError(it.second)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ NextJobPrompt.CREATE_LOCK_JOB -> {
|
|
|
+ TipDialog.showInfo(
|
|
|
+ getString(R.string.confirm_handle_exception),
|
|
|
+ onConfirmClick = {
|
|
|
+ viewModel.handleException().observe(this) {
|
|
|
+ if (it.first) {
|
|
|
+ TipDialog.showInfo(
|
|
|
+ getString(R.string.confirm_create_lock_job),
|
|
|
+ onConfirmClick = {
|
|
|
+ exceptionJobViewModel.createLockJob().observe(this) {
|
|
|
+ if (it) {
|
|
|
+ TipDialog.showSuccess(
|
|
|
+ getString(R.string.handle_exception_success),
|
|
|
+ onConfirmClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ },
|
|
|
+ onCancelClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ TipDialog.showError(getString(R.string.create_job_failed))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, onCancelClick = {
|
|
|
+ TipDialog.showSuccess(
|
|
|
+ getString(R.string.handle_exception_success),
|
|
|
+ onConfirmClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ },
|
|
|
+ onCancelClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ })
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ TipDialog.showError(it.second)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ NextJobPrompt.CREATE_UNLOCK_JOB -> {
|
|
|
+ TipDialog.showInfo(
|
|
|
+ getString(R.string.confirm_handle_exception),
|
|
|
+ onConfirmClick = {
|
|
|
+ viewModel.handleException().observe(this) {
|
|
|
+ if (it.first) {
|
|
|
+ TipDialog.showInfo(
|
|
|
+ getString(R.string.confirm_create_unlock_job),
|
|
|
+ onConfirmClick = {
|
|
|
+ exceptionJobViewModel.createUnlockJob().observe(this) {
|
|
|
+ if (it) {
|
|
|
+ TipDialog.showSuccess(
|
|
|
+ getString(R.string.handle_exception_success),
|
|
|
+ onConfirmClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ },
|
|
|
+ onCancelClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ TipDialog.showError(getString(R.string.create_job_failed))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, onCancelClick = {
|
|
|
+ TipDialog.showSuccess(
|
|
|
+ getString(R.string.handle_exception_success),
|
|
|
+ onConfirmClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ },
|
|
|
+ onCancelClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ })
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ TipDialog.showError(it.second)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun initData() {
|
|
|
super.initData()
|
|
|
viewModel.exceptionData = GlobalDataTempStore.getInstance()
|
|
|
.getData(DataTransferConstants.KEY_EXCEPTION_DATA)
|
|
|
viewModel.getDictData().observe(this) {
|
|
|
viewModel.getExceptionSourceName().observe(this) {
|
|
|
+ if (viewModel.exceptionData?.exceptionType.toString() == viewModel.exceptionType.find {
|
|
|
+ it.dictLabel.contains(
|
|
|
+ "作业"
|
|
|
+ )
|
|
|
+ }?.dictValue) {
|
|
|
+ exceptionJobViewModel.ticketId = viewModel.exceptionSourceData[0].sourceDataId
|
|
|
+ getData()
|
|
|
+ }
|
|
|
binding.handleException.isVisible =
|
|
|
viewModel.exceptionStatus.find { it.dictLabel == "待处理" }?.dictValue == viewModel.exceptionData?.exceptionStatus.toString()
|
|
|
binding.cancelException.isVisible =
|
|
|
@@ -92,4 +251,34 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private fun getData() {
|
|
|
+ viewModel.getExceptionData().observe(this) {
|
|
|
+ binding.exceptionDescription.text =
|
|
|
+ viewModel.exceptionData?.exceptionDescription?.joinToString(",")
|
|
|
+ binding.handleException.isVisible =
|
|
|
+ viewModel.exceptionStatus.find { it.dictLabel == "待处理" }?.dictValue == viewModel.exceptionData?.exceptionStatus.toString()
|
|
|
+ binding.cancelException.isVisible =
|
|
|
+ viewModel.exceptionStatus.find { it.dictLabel == "待处理" }?.dictValue == viewModel.exceptionData?.exceptionStatus.toString()
|
|
|
+ }
|
|
|
+ exceptionJobViewModel.getJobTicketData().observe(this) {
|
|
|
+ if (it) {
|
|
|
+ exceptionJobViewModel.isUnlockFirst(exceptionJobViewModel.ticketData?.modeId!!)
|
|
|
+ .observe(this) {}
|
|
|
+ exceptionJobViewModel.getWorkflowSteps(exceptionJobViewModel.ticketData?.modeId!!)
|
|
|
+ .observe(this) {
|
|
|
+
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ TipDialog.showError(
|
|
|
+ msg = CommonUtils.getStr(com.grkj.ui_base.R.string.ticket_lost).toString(),
|
|
|
+ onConfirmClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ },
|
|
|
+ onCancelClick = {
|
|
|
+ navController.popBackStack()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|