|
|
@@ -16,6 +16,7 @@ import com.grkj.ui_base.utils.CommonUtils
|
|
|
import com.sik.sikcore.data.GlobalDataTempStore
|
|
|
import com.sik.sikcore.extension.setDebouncedClickListener
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
|
+import kotlin.math.log
|
|
|
|
|
|
/**
|
|
|
* 异常详情
|
|
|
@@ -63,11 +64,19 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 是否为作业异常
|
|
|
+ */
|
|
|
private fun isJobException(): Boolean {
|
|
|
- val exceptionTypeValue = viewModel.exceptionType.find { it.dictLabel == "作业异常" }?.dictValue
|
|
|
+ val exceptionTypeValue =
|
|
|
+ viewModel.exceptionType.find { it.dictLabel == "作业异常" }?.dictValue
|
|
|
+ logger.info("是否为异常作业:${viewModel.exceptionData?.exceptionType.toString()},${exceptionTypeValue}")
|
|
|
return viewModel.exceptionData?.exceptionType.toString() == exceptionTypeValue
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 简单处理,主要是非作业异常的
|
|
|
+ */
|
|
|
private fun showSimpleConfirmHandleDialog() {
|
|
|
TipDialog.showInfo(
|
|
|
getString(R.string.confirm_handle_exception),
|
|
|
@@ -83,6 +92,9 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 处理成功弹窗
|
|
|
+ */
|
|
|
private fun showHandleSuccessDialog() {
|
|
|
TipDialog.showSuccess(
|
|
|
getString(R.string.handle_exception_success),
|
|
|
@@ -91,41 +103,52 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 隐藏处理按钮
|
|
|
+ */
|
|
|
private fun hideHandleButtons() {
|
|
|
binding.handleException.isVisible = false
|
|
|
binding.cancelException.isVisible = false
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * exceptionData?.exceptionDescription
|
|
|
+ */
|
|
|
private fun checkLockAndCrossJobThenHandle() {
|
|
|
- exceptionJobViewModel.checkJobHasCoLockAndCrossJob().observe(this) { (hasCoLock, hasCrossJob) ->
|
|
|
- when {
|
|
|
- hasCoLock && hasCrossJob -> {
|
|
|
- showCoLockReleaseWarning {
|
|
|
- showCrossJobWarning {
|
|
|
+ logger.info("检查是否上锁和交叉作业")
|
|
|
+ exceptionJobViewModel.checkJobHasCoLockAndCrossJob()
|
|
|
+ .observe(this) { (hasCoLock, hasCrossJob) ->
|
|
|
+ when {
|
|
|
+ hasCoLock && hasCrossJob -> {
|
|
|
+ showCoLockReleaseWarning {
|
|
|
+ showCrossJobWarning {
|
|
|
+ handleExceptionCheck()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ hasCoLock -> {
|
|
|
+ showCoLockReleaseWarning {
|
|
|
handleExceptionCheck()
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- hasCoLock -> {
|
|
|
- showCoLockReleaseWarning {
|
|
|
- handleExceptionCheck()
|
|
|
+ hasCrossJob -> {
|
|
|
+ showCrossJobWarning {
|
|
|
+ handleExceptionCheck()
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- hasCrossJob -> {
|
|
|
- showCrossJobWarning {
|
|
|
+ else -> {
|
|
|
handleExceptionCheck()
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- else -> {
|
|
|
- handleExceptionCheck()
|
|
|
- }
|
|
|
}
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 共锁解除警告
|
|
|
+ */
|
|
|
private fun showCoLockReleaseWarning(onConfirm: () -> Unit) {
|
|
|
TipDialog.show(
|
|
|
title = getString(R.string.warn),
|
|
|
@@ -135,6 +158,9 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 交叉作业警告
|
|
|
+ */
|
|
|
private fun showCrossJobWarning(onConfirm: () -> Unit) {
|
|
|
TipDialog.show(
|
|
|
title = getString(R.string.warn),
|
|
|
@@ -144,6 +170,9 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 处理异常
|
|
|
+ */
|
|
|
private fun handleExceptionCheck() {
|
|
|
exceptionJobViewModel.checkJobNeedLockOrUnlock().observe(this) {
|
|
|
when (it) {
|
|
|
@@ -257,16 +286,20 @@ class ExceptionDetailFragment : BaseFragment<FragmentExceptionDetailBinding>() {
|
|
|
.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) {
|
|
|
- viewModel.getExceptionSourceData().observe(this) {
|
|
|
- if (viewModel.exceptionSourceData.isNotEmpty()) {
|
|
|
- exceptionJobViewModel.ticketId =
|
|
|
- viewModel.exceptionSourceData[0].sourceDataId
|
|
|
- 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()
|
|
|
+ if (isJobException()) {
|
|
|
+ viewModel.getExceptionSourceData().observe(this) {
|
|
|
+ if (viewModel.exceptionSourceData.isNotEmpty()) {
|
|
|
+ exceptionJobViewModel.ticketId =
|
|
|
+ viewModel.exceptionSourceData[0].sourceDataId
|
|
|
+ getData()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -289,14 +322,6 @@ 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?.ticketId!!)
|