ソースを参照

refactor(更新)
- 个人信息界面更新
- 异常上报的逻辑调整
- 数据管理以及硬件管理的编辑部分,去除二次验证
- 异常处理,如果是作业异常则检查是否有未闭锁点位,如果有则提示闭锁后处理
- 作业执行的点位如果已经操作,则背景色改变

周文健 3 ヶ月 前
コミット
a4d577559d

+ 28 - 29
app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/PointMangeFragment.kt

@@ -163,35 +163,34 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
                         dataText = "${it.rfidCode}(${it.rfid})"
                     )
                 }) { data, dialog ->
-                    viewModel.validatePointData(data.rfidId ?: 0).observe(this@PointMangeFragment) {
-                        viewModel.updateIsolationPoint(data).observe(this@PointMangeFragment) {
-                            if (it) {
-                                TipDialog.show(
-                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
-                                        .toString(),
-                                    dialogType = TipDialog.DialogType.SUCCESS,
-                                    msg = CommonUtils.getStr(R.string.update_point_succeed)
-                                        .toString(),
-                                    countDownTime = 10,
-                                    showConfirm = false,
-                                    onCancelClick = {
-                                        getPointData(nextPage = false)
-                                    }
-                                )
-                            } else {
-                                TipDialog.show(
-                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
-                                        .toString(),
-                                    dialogType = TipDialog.DialogType.ERROR,
-                                    msg = CommonUtils.getStr(R.string.update_point_failed)
-                                        .toString(),
-                                    countDownTime = 10,
-                                    showConfirm = false,
-                                    onCancelClick = {
-                                        getPointData(nextPage = false)
-                                    }
-                                )
-                            }
+                    viewModel.updateIsolationPoint(data).observe(this@PointMangeFragment) {
+                        dialog.dismiss()
+                        if (it) {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                msg = CommonUtils.getStr(R.string.update_point_succeed)
+                                    .toString(),
+                                countDownTime = 10,
+                                showConfirm = false,
+                                onCancelClick = {
+                                    getPointData(nextPage = false)
+                                }
+                            )
+                        } else {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.ERROR,
+                                msg = CommonUtils.getStr(R.string.update_point_failed)
+                                    .toString(),
+                                countDownTime = 10,
+                                showConfirm = false,
+                                onCancelClick = {
+                                    getPointData(nextPage = false)
+                                }
+                            )
                         }
                     }
                 }

+ 28 - 29
app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/RoleManageFragment.kt

@@ -173,35 +173,34 @@ class RoleManageFragment : BaseFragment<FragmentRoleManageBinding>() {
                             )
                             return@show
                         }
-                        viewModel.validateRoleData(data.roleKeys).observe(this@RoleManageFragment) {
-                            viewModel.updateRoleData(data).observe(this@RoleManageFragment) {
-                                if (it) {
-                                    TipDialog.show(
-                                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
-                                            .toString(),
-                                        dialogType = TipDialog.DialogType.SUCCESS,
-                                        msg = CommonUtils.getStr(R.string.update_role_succeed)
-                                            .toString(),
-                                        countDownTime = 10,
-                                        showConfirm = false,
-                                        onCancelClick = {
-                                            getRoleData(nextPage = false)
-                                        }
-                                    )
-                                } else {
-                                    TipDialog.show(
-                                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
-                                            .toString(),
-                                        dialogType = TipDialog.DialogType.ERROR,
-                                        msg = CommonUtils.getStr(R.string.update_role_failed)
-                                            .toString(),
-                                        countDownTime = 10,
-                                        showConfirm = false,
-                                        onCancelClick = {
-                                            getRoleData(nextPage = false)
-                                        }
-                                    )
-                                }
+                        viewModel.updateRoleData(data).observe(this@RoleManageFragment) {
+                            dialog.dismiss()
+                            if (it) {
+                                TipDialog.show(
+                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                        .toString(),
+                                    dialogType = TipDialog.DialogType.SUCCESS,
+                                    msg = CommonUtils.getStr(R.string.update_role_succeed)
+                                        .toString(),
+                                    countDownTime = 10,
+                                    showConfirm = false,
+                                    onCancelClick = {
+                                        getRoleData(nextPage = false)
+                                    }
+                                )
+                            } else {
+                                TipDialog.show(
+                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
+                                        .toString(),
+                                    dialogType = TipDialog.DialogType.ERROR,
+                                    msg = CommonUtils.getStr(R.string.update_role_failed)
+                                        .toString(),
+                                    countDownTime = 10,
+                                    showConfirm = false,
+                                    onCancelClick = {
+                                        getRoleData(nextPage = false)
+                                    }
+                                )
                             }
                         }
                     }

+ 28 - 29
app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/UserManageFragment.kt

@@ -141,35 +141,34 @@ class UserManageFragment : BaseFragment<FragmentUserManageBinding>() {
                         dataText = it.workstationName
                     )
                 }) { data, dialog ->
-                    viewModel.validateUserData(data.username).observe(this@UserManageFragment) {
-                        viewModel.updateUser(data).observe(this@UserManageFragment) {
-                            if (it) {
-                                TipDialog.show(
-                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
-                                        .toString(),
-                                    dialogType = TipDialog.DialogType.SUCCESS,
-                                    msg = CommonUtils.getStr(R.string.update_user_succeed)
-                                        .toString(),
-                                    countDownTime = 10,
-                                    showConfirm = false,
-                                    onCancelClick = {
-                                        getUserData(false)
-                                    }
-                                )
-                            } else {
-                                TipDialog.show(
-                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
-                                        .toString(),
-                                    dialogType = TipDialog.DialogType.ERROR,
-                                    msg = CommonUtils.getStr(R.string.update_user_failed)
-                                        .toString(),
-                                    countDownTime = 10,
-                                    showConfirm = false,
-                                    onCancelClick = {
-                                        getUserData(false)
-                                    }
-                                )
-                            }
+                    viewModel.updateUser(data).observe(this@UserManageFragment) {
+                        dialog.dismiss()
+                        if (it) {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                msg = CommonUtils.getStr(R.string.update_user_succeed)
+                                    .toString(),
+                                countDownTime = 10,
+                                showConfirm = false,
+                                onCancelClick = {
+                                    getUserData(false)
+                                }
+                            )
+                        } else {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.ERROR,
+                                msg = CommonUtils.getStr(R.string.update_user_failed)
+                                    .toString(),
+                                countDownTime = 10,
+                                showConfirm = false,
+                                onCancelClick = {
+                                    getUserData(false)
+                                }
+                            )
                         }
                     }
                 }

+ 203 - 14
app/src/main/java/com/grkj/iscs/features/main/fragment/exception_manage/ExceptionDetailFragment.kt

@@ -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()
+                    })
+            }
+        }
+    }
 }

+ 14 - 16
app/src/main/java/com/grkj/iscs/features/main/fragment/hardware_manage/CardManageFragment.kt

@@ -108,23 +108,21 @@ class CardManageFragment : BaseFragment<FragmentCardManageBinding>() {
         bind.root.setOnClickListener {
             viewModel.getAllUserData().observe(this) {
                 UpdateCardDialog.show(item, it) { vo, dialog ->
-                    viewModel.validateCardData(vo.cardNfc).observe(this) {
-                        viewModel.updateCard(vo).observe(this) { ok ->
-                            dialog.dismiss()
-                            @StringRes val titleRes =
-                                if (ok) com.grkj.ui_base.R.string.action_succeed else com.grkj.ui_base.R.string.action_failed
-                            @StringRes val msgRes =
-                                if (ok) R.string.update_card_succeed else R.string.update_card_failed
+                    viewModel.updateCard(vo).observe(this) { ok ->
+                        dialog.dismiss()
+                        @StringRes val titleRes =
+                            if (ok) com.grkj.ui_base.R.string.action_succeed else com.grkj.ui_base.R.string.action_failed
+                        @StringRes val msgRes =
+                            if (ok) R.string.update_card_succeed else R.string.update_card_failed
 
-                            TipDialog.show(
-                                title = CommonUtils.getStr(titleRes).toString(),
-                                dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
-                                msg = CommonUtils.getStr(msgRes).toString(),
-                                countDownTime = 10,
-                                showConfirm = false,
-                                onCancelClick = { loadCards(reset = true) }
-                            )
-                        }
+                        TipDialog.show(
+                            title = CommonUtils.getStr(titleRes).toString(),
+                            dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
+                            msg = CommonUtils.getStr(msgRes).toString(),
+                            countDownTime = 10,
+                            showConfirm = false,
+                            onCancelClick = { loadCards(reset = true) }
+                        )
                     }
                 }
             }

+ 27 - 29
app/src/main/java/com/grkj/iscs/features/main/fragment/hardware_manage/KeyManageFragment.kt

@@ -124,37 +124,35 @@ class KeyManageFragment : BaseFragment<FragmentKeyManageBinding>() {
         }
         itemBinding.root.setOnClickListener {
             UpdateKeyDialog.show(item) { data, dialog ->
-                viewModel.validateKeyData(data.keyNfc ?: "", data.macAddress ?: "")
-                    .observe(this@KeyManageFragment) {
-                        viewModel.updateKey(data).observe(this@KeyManageFragment) {
-                            if (it) {
-                                TipDialog.show(
-                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
-                                        .toString(),
-                                    dialogType = TipDialog.DialogType.SUCCESS,
-                                    msg = CommonUtils.getStr(R.string.update_key_succeed)
-                                        .toString(),
-                                    countDownTime = 10,
-                                    showConfirm = false,
-                                    onCancelClick = {
-                                        getKeyData(false)
-                                    }
-                                )
-                            } else {
-                                TipDialog.show(
-                                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
-                                        .toString(),
-                                    dialogType = TipDialog.DialogType.ERROR,
-                                    msg = CommonUtils.getStr(R.string.update_key_failed).toString(),
-                                    countDownTime = 10,
-                                    showConfirm = false,
-                                    onCancelClick = {
-                                        getKeyData(false)
-                                    }
-                                )
+                viewModel.updateKey(data).observe(this@KeyManageFragment) {
+                    dialog.dismiss()
+                    if (it) {
+                        TipDialog.show(
+                            title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                .toString(),
+                            dialogType = TipDialog.DialogType.SUCCESS,
+                            msg = CommonUtils.getStr(R.string.update_key_succeed)
+                                .toString(),
+                            countDownTime = 10,
+                            showConfirm = false,
+                            onCancelClick = {
+                                getKeyData(false)
                             }
-                        }
+                        )
+                    } else {
+                        TipDialog.show(
+                            title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
+                                .toString(),
+                            dialogType = TipDialog.DialogType.ERROR,
+                            msg = CommonUtils.getStr(R.string.update_key_failed).toString(),
+                            countDownTime = 10,
+                            showConfirm = false,
+                            onCancelClick = {
+                                getKeyData(false)
+                            }
+                        )
                     }
+                }
             }
         }
     }

+ 14 - 16
app/src/main/java/com/grkj/iscs/features/main/fragment/hardware_manage/RfidTokenManageFragment.kt

@@ -104,23 +104,21 @@ class RfidTokenManageFragment : BaseFragment<FragmentRfidTokenManageBinding>() {
         }
         bind.root.setOnClickListener {
             UpdateRfidTokenDialog.show(item) { vo, dialog ->
-                viewModel.validateRfidTokenData(vo.rfid).observe(this) {
-                    viewModel.updateRfidToken(vo).observe(this) { ok ->
-                        dialog.dismiss()
-                        @StringRes val titleRes =
-                            if (ok) com.grkj.ui_base.R.string.action_succeed else com.grkj.ui_base.R.string.action_failed
-                        @StringRes val msgRes =
-                            if (ok) R.string.update_rfid_token_succeed else R.string.update_rfid_token_failed
+                viewModel.updateRfidToken(vo).observe(this) { ok ->
+                    dialog.dismiss()
+                    @StringRes val titleRes =
+                        if (ok) com.grkj.ui_base.R.string.action_succeed else com.grkj.ui_base.R.string.action_failed
+                    @StringRes val msgRes =
+                        if (ok) R.string.update_rfid_token_succeed else R.string.update_rfid_token_failed
 
-                        TipDialog.show(
-                            title = CommonUtils.getStr(titleRes).toString(),
-                            dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
-                            msg = CommonUtils.getStr(msgRes).toString(),
-                            countDownTime = 10,
-                            showConfirm = false,
-                            onCancelClick = { loadTokens(reset = true) }
-                        )
-                    }
+                    TipDialog.show(
+                        title = CommonUtils.getStr(titleRes).toString(),
+                        dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
+                        msg = CommonUtils.getStr(msgRes).toString(),
+                        countDownTime = 10,
+                        showConfirm = false,
+                        onCancelClick = { loadTokens(reset = true) }
+                    )
                 }
             }
         }

+ 21 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/JobExecuteFragment.kt

@@ -4,6 +4,7 @@ import android.graphics.drawable.GradientDrawable
 import android.view.Gravity
 import android.view.ViewGroup
 import android.widget.LinearLayout
+import androidx.core.content.ContextCompat
 import androidx.core.view.isVisible
 import androidx.fragment.app.viewModels
 import androidx.lifecycle.Lifecycle
@@ -416,12 +417,30 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
         itemBinding.pointFunction.text = item.pointFunction
         itemBinding.lockStatusLayout.isVisible = item.pointStatus != "0"
         if (item.pointStatus == "1") {
+            itemBinding.lockStatusTv.setTextColor(
+                ContextCompat.getColor(
+                    requireContext(),
+                    R.color.white
+                )
+            )
             itemBinding.lockStatusLayout.setBackgroundResource(R.drawable.bg_btn_job_execute_go_locking)
             itemBinding.lockStatusIv.setImageResource(R.drawable.icon_ticket_lock)
         } else if (item.pointStatus == "2") {
+            itemBinding.lockStatusTv.setTextColor(
+                ContextCompat.getColor(
+                    requireContext(),
+                    R.color.white
+                )
+            )
             itemBinding.lockStatusLayout.setBackgroundResource(R.drawable.bg_btn_job_execute_go_unlocking)
             itemBinding.lockStatusIv.setImageResource(R.drawable.icon_ticket_unlock)
         } else {
+            itemBinding.lockStatusTv.setTextColor(
+                ContextCompat.getColor(
+                    requireContext(),
+                    R.color.black
+                )
+            )
             itemBinding.lockStatusLayout.background = null
             itemBinding.lockStatusIv.isVisible = false
         }
@@ -584,7 +603,8 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
                 viewModel.workflowSteps.find { it.stepId == viewModel.currentStepData?.workflowStepId }
             //步骤开启取消作业,并且点位还没有上锁,显示取消作业按钮
             binding.cancelJob.isVisible =
-                currentStep?.enableCancelJob == true && viewModel.ticketPoints.all { it.pointStatus == "0" }
+                currentStep?.enableCancelJob == true && viewModel.ticketPoints.all { it.pointStatus == "0" } ||
+                        (viewModel.isUnlockFirst && currentStep?.enableCancelJob == true && viewModel.ticketPoints.all { it.pointStatus == "1" })
             binding.toLock.isVisible =
                     //步骤开启上锁,并且点位都还没有上锁
                 (currentStep?.enableLock == true && viewModel.ticketPoints.any { it.pointStatus == "0" }) ||

+ 10 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/user_info/UserInfoFragment.kt

@@ -64,6 +64,7 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
             navController.popBackStack()
         }
         binding.avatar.setDebouncedClickListener {
+            binding.showUserInfoLayout.isVisible = false
             binding.faceSetLayout.isVisible = true
             binding.image.isVisible = false
             binding.previewLayout.isVisible = true
@@ -73,6 +74,7 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
         }
         binding.setAvatarCancel.setDebouncedClickListener {
             releaseFace()
+            binding.showUserInfoLayout.isVisible = true
             binding.faceSetLayout.isVisible = false
             binding.image.isVisible = false
             binding.previewLayout.isVisible = true
@@ -81,6 +83,7 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
         }
         binding.setAvatarConfirm.setDebouncedClickListener {
             releaseFace()
+            binding.showUserInfoLayout.isVisible = true
             binding.faceSetLayout.isVisible = false
             binding.setAvatarConfirm.isVisible = false
             binding.recapture.isVisible = false
@@ -95,7 +98,9 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
                 CommonConstants.AVATAR_FOLDER,
                 saveFileName
             )
-            viewModel.saveUserAvatar(savePath).observe(this) {}
+            viewModel.saveUserAvatar(savePath).observe(this) {
+                getData()
+            }
         }
         binding.recapture.setDebouncedClickListener {
             reCaptureTimer.start()
@@ -132,6 +137,10 @@ class UserInfoFragment : BaseFragment<FragmentUserInfoBinding>() {
 
     override fun initData() {
         super.initData()
+        getData()
+    }
+
+    private fun getData(){
         binding.username.text = MainDomainData.userInfo?.userName
         binding.nicknameEt.setText(MainDomainData.userInfo?.nickName)
         binding.phoneEt.setText(MainDomainData.userInfo?.phoneNumber)

+ 1 - 9
app/src/main/java/com/grkj/iscs/features/main/viewmodel/exception_manage/ExceptionViewModel.kt

@@ -3,7 +3,6 @@ package com.grkj.iscs.features.main.viewmodel.exception_manage
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
 import com.grkj.data.data.DictConstants
-import com.grkj.data.model.dos.IsExceptionSourceStandard
 import com.grkj.data.model.dos.IsExceptionStandard
 import com.grkj.data.model.res.CommonDictRes
 import com.grkj.data.model.vo.IsExceptionStandardVo
@@ -346,14 +345,7 @@ class ExceptionViewModel @Inject constructor(
             exceptionData.exceptionType = selectedExceptionType?.toInt() ?: 0
             exceptionData.exceptionDescription = selectedExceptionDescription
             exceptionData.processApplication = selectedProcessApplication
-            val exceptionId = exceptionRepository.reportException(exceptionData)
-            for (exceptionSource in selectedSourceData) {
-                val exceptionSourceData = IsExceptionSourceStandard()
-                exceptionSourceData.exceptionId = exceptionId
-                exceptionSourceData.sourceDataId = exceptionSource.sourceDataId
-                exceptionSourceData.sourceDataType = exceptionSource.sourceDataType
-                exceptionRepository.saveExceptionSourceData(exceptionSourceData)
-            }
+            exceptionRepository.reportException(exceptionData)
             emit(true)
         }
     }

+ 3 - 2
app/src/main/res/layout-land/activity_main.xml

@@ -46,10 +46,11 @@
 
                     <ImageView
                         android:id="@+id/avatar"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent"
+                        android:layout_width="@dimen/avatar_size"
+                        android:layout_height="@dimen/avatar_size"
                         android:layout_gravity="center_vertical"
                         android:layout_marginLeft="@dimen/common_spacing"
+                        android:padding="@dimen/common_spacing"
                         android:src="@mipmap/icon_avatar" />
 
                     <TextView

+ 6 - 4
app/src/main/res/layout/activity_main.xml

@@ -47,10 +47,12 @@
 
                     <ImageView
                         android:id="@+id/avatar"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent"
+                        android:layout_width="@dimen/avatar_size"
+                        android:layout_height="@dimen/avatar_size"
                         android:layout_gravity="center_vertical"
                         android:layout_marginLeft="@dimen/common_spacing"
+                        android:padding="@dimen/common_spacing"
+                        android:adjustViewBounds="false"
                         android:src="@mipmap/icon_avatar" />
 
                     <TextView
@@ -74,8 +76,8 @@
                 android:gravity="center_vertical"
                 android:paddingHorizontal="@dimen/common_spacing"
                 android:textColor="@color/white"
-                android:visibility="gone"
-                android:textSize="@dimen/common_btn_text_size" />
+                android:textSize="@dimen/common_btn_text_size"
+                android:visibility="gone" />
 
         </FrameLayout>
 

+ 1 - 1
app/src/main/res/values-land/dimens.xml

@@ -99,7 +99,7 @@
     <dimen name="job_execute_tab_icon_size">51dp</dimen>
     <dimen name="slots_exception_report_width">850dp</dimen>
     <dimen name="slots_exception_report_dialog_content_height">340dp</dimen>
-    <dimen name="avatar_size">150dp</dimen>
+    <dimen name="avatar_size">80dp</dimen>
     <dimen name="dialog_check_face_close_size">80dp</dimen>
     <dimen name="badge_text_size">28sp</dimen>
     <dimen name="selected_point_info_layout_width">400dp</dimen>