Quellcode durchsuchen

refactor(更新)
- 新增修改的弹窗改为不可外部点击关闭
- 新增卡片和新增rfid增加刷卡填充功能

周文健 vor 4 Monaten
Ursprung
Commit
302976a84c
34 geänderte Dateien mit 129 neuen und 41 gelöschten Zeilen
  1. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddPointDialog.kt
  2. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddRoleDialog.kt
  3. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddUserDialog.kt
  4. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddWorkstationDialog.kt
  5. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/FilterPointDialog.kt
  6. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/FilterRoleDialog.kt
  7. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/FilterUserDialog.kt
  8. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdatePointDialog.kt
  9. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdateRoleDialog.kt
  10. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdateUserDialog.kt
  11. 30 1
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddCardDialog.kt
  12. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddKeyDialog.kt
  13. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddLockDialog.kt
  14. 30 2
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddRfidTokenDialog.kt
  15. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterCardDialog.kt
  16. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterKeyDialog.kt
  17. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterLockDialog.kt
  18. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterRfidTokenDialog.kt
  19. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/SlotsExceptionReportDialog.kt
  20. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateCardDialog.kt
  21. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateKeyDialog.kt
  22. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateLockDialog.kt
  23. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateRfidTokenDialog.kt
  24. 1 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/user_info/AddFingerprintDialog.kt
  25. 4 0
      app/src/main/java/com/grkj/iscs/features/main/fragment/common/SelectMemberFragment.kt
  26. 32 35
      app/src/main/java/com/grkj/iscs/features/main/viewmodel/MainViewModel.kt
  27. 1 1
      app/src/main/java/com/grkj/iscs/features/main/viewmodel/data_manage/WorkstationManageViewModel.kt
  28. 1 1
      app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/JobViewModel.kt
  29. 1 0
      app/src/main/res/values-en/strings.xml
  30. 1 0
      app/src/main/res/values-zh/strings.xml
  31. 1 0
      app/src/main/res/values/strings.xml
  32. 4 0
      data/src/main/java/com/grkj/data/repository/impl/network/NetworkUserRepository.kt
  33. 1 0
      data/src/main/java/com/grkj/data/repository/impl/standard/HardwareRepository.kt
  34. 1 1
      ui-base/src/main/java/com/grkj/ui_base/base/BaseViewModel.kt

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddPointDialog.kt

@@ -29,6 +29,7 @@ class AddPointDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddPointBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         binding.powerTypeTv.setOnClickListener {

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddRoleDialog.kt

@@ -33,6 +33,7 @@ class AddRoleDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddRoleBinding.bind(v)
+        dialog?.isCancelable = false
         // 遮罩色
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddUserDialog.kt

@@ -32,6 +32,7 @@ class AddUserDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddUserBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 根据配置显示/隐藏工作站选择

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddWorkstationDialog.kt

@@ -22,6 +22,7 @@ class AddWorkstationDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddWorkstationBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         binding.cancel.setOnClickListener { dialog?.dismiss() }

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/FilterPointDialog.kt

@@ -28,6 +28,7 @@ class FilterPointDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogFilterPointBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 电源类型单选

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/FilterRoleDialog.kt

@@ -22,6 +22,7 @@ class FilterRoleDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogFilterRoleBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 关闭/取消

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/FilterUserDialog.kt

@@ -25,6 +25,7 @@ class FilterUserDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogFilterUserBinding.bind(v)
+        dialog?.isCancelable = false
         // 设置遮罩色
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
         // 根据配置显示/隐藏工作站输入

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdatePointDialog.kt

@@ -41,6 +41,7 @@ class UpdatePointDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogUpdatePointBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 初始化

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdateRoleDialog.kt

@@ -36,6 +36,7 @@ class UpdateRoleDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogUpdateRoleBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 预填数据

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdateUserDialog.kt

@@ -34,6 +34,7 @@ class UpdateUserDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogUpdateUserBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 显示或隐藏工作站选项

+ 30 - 1
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddCardDialog.kt

@@ -1,15 +1,22 @@
 package com.grkj.iscs.features.main.dialog.hardware_manage
 
 import android.view.View
+import com.grkj.data.data.EventConstants
 import com.grkj.data.model.vo.AddCardDataVo
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.DialogAddCardBinding
 import com.grkj.iscs.features.main.dialog.TextDropDownDialog
+import com.grkj.shared.model.EventBean
 import com.grkj.ui_base.utils.CommonUtils
+import com.grkj.ui_base.utils.event.RFIDCardReadEvent
 import com.grkj.ui_base.utils.extension.tipDialog
 import com.kongzue.dialogx.dialogs.CustomDialog
 import com.kongzue.dialogx.dialogs.PopTip
+import com.kongzue.dialogx.interfaces.DialogLifecycleCallback
 import com.kongzue.dialogx.interfaces.OnBindView
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 
 /**
  * 新增卡片对话框,基于 DialogX,支持选择用户
@@ -26,8 +33,19 @@ class AddCardDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddCardBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
-
+        if (!EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().register(this)
+        }
+        dialog?.setDialogLifecycleCallback(object : DialogLifecycleCallback<CustomDialog>() {
+            override fun onDismiss(dialog: CustomDialog?) {
+                super.onDismiss(dialog)
+                if (EventBus.getDefault().isRegistered(this)) {
+                    EventBus.getDefault().unregister(this)
+                }
+            }
+        })
         // 用户单选
         binding.usernameTv.setOnClickListener {
             TextDropDownDialog.showSingle(userData,binding.usernameTv) { item ->
@@ -65,6 +83,17 @@ class AddCardDialog(
         }
     }
 
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    open fun onEvent(event: EventBean<*>) {
+        when (event.code) {
+            EventConstants.EVENT_RFID_CARD_READ -> {
+                (event.data as RFIDCardReadEvent).let {
+                    binding.cardNfcEt.setText(it.rfidNo)
+                }
+            }
+        }
+    }
+
     companion object {
         /**
          * 显示新增卡片对话框并设置回调

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddKeyDialog.kt

@@ -23,6 +23,7 @@ class AddKeyDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddKeyBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 取消/关闭

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddLockDialog.kt

@@ -23,6 +23,7 @@ class AddLockDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddLockBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 取消/关闭

+ 30 - 2
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/AddRfidTokenDialog.kt

@@ -1,14 +1,21 @@
 package com.grkj.iscs.features.main.dialog.hardware_manage
 
 import android.view.View
+import com.grkj.data.data.EventConstants
 import com.grkj.data.model.vo.AddRfidTokenDataVo
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.DialogAddRfidTokenBinding
+import com.grkj.shared.model.EventBean
 import com.grkj.ui_base.utils.CommonUtils
+import com.grkj.ui_base.utils.event.RFIDCardReadEvent
 import com.grkj.ui_base.utils.extension.tipDialog
 import com.kongzue.dialogx.dialogs.CustomDialog
 import com.kongzue.dialogx.dialogs.PopTip
+import com.kongzue.dialogx.interfaces.DialogLifecycleCallback
 import com.kongzue.dialogx.interfaces.OnBindView
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 
 /**
  * 新增 RFID 标签对话框,基于 DialogX
@@ -23,12 +30,22 @@ class AddRfidTokenDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogAddRfidTokenBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
-
+        if (!EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().register(this)
+        }
+        dialog?.setDialogLifecycleCallback(object : DialogLifecycleCallback<CustomDialog>() {
+            override fun onDismiss(dialog: CustomDialog?) {
+                super.onDismiss(dialog)
+                if (EventBus.getDefault().isRegistered(this)) {
+                    EventBus.getDefault().unregister(this)
+                }
+            }
+        })
         // 取消/关闭
         binding.cancel.setOnClickListener { dialog?.dismiss() }
         binding.closeIv.setOnClickListener { dialog?.dismiss() }
-
         // 确认
         binding.confirm.setOnClickListener {
             val code = binding.rfidCodeEt.text.trim().toString()
@@ -62,6 +79,17 @@ class AddRfidTokenDialog(
         }
     }
 
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    open fun onEvent(event: EventBean<*>) {
+        when (event.code) {
+            EventConstants.EVENT_RFID_CARD_READ -> {
+                (event.data as RFIDCardReadEvent).let {
+                    binding.rfidEt.setText(it.rfidNo)
+                }
+            }
+        }
+    }
+
     companion object {
         /**
          * 显示新增 RFID 标签对话框并设置回调

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterCardDialog.kt

@@ -25,6 +25,7 @@ class FilterCardDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogFilterCardBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
         binding.usernameTv.isVisible = userData.isNotEmpty()
 

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterKeyDialog.kt

@@ -21,6 +21,7 @@ class FilterKeyDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogFilterKeyBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 取消/关闭

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterLockDialog.kt

@@ -20,6 +20,7 @@ class FilterLockDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogFilterLockBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 关闭/取消

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/FilterRfidTokenDialog.kt

@@ -20,6 +20,7 @@ class FilterRfidTokenDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogFilterRfidTokenBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 取消/关闭

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/SlotsExceptionReportDialog.kt

@@ -22,6 +22,7 @@ class SlotsExceptionReportDialog(
     private lateinit var binding: DialogSlotsExceptionReportBinding
     override fun onBind(dialog: CustomDialog, contentView: View) {
         binding = DialogSlotsExceptionReportBinding.bind(contentView)
+        dialog?.isCancelable = false
         binding.hardwareInfo.text = context.getString(
             com.grkj.ui_base.R.string.hardware_info,
             "${getDeviceTypeStr(slotType)},${context.getString(com.grkj.ui_base.R.string.number)} 行${row},列${col}"

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateCardDialog.kt

@@ -30,6 +30,7 @@ class UpdateCardDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogUpdateCardBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 预填数据

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateKeyDialog.kt

@@ -26,6 +26,7 @@ class UpdateKeyDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogUpdateKeyBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 预填数据

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateLockDialog.kt

@@ -26,6 +26,7 @@ class UpdateLockDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogUpdateLockBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 预填数据

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/hardware_manage/UpdateRfidTokenDialog.kt

@@ -26,6 +26,7 @@ class UpdateRfidTokenDialog(
 
     override fun onBind(dialog: CustomDialog?, v: View) {
         binding = DialogUpdateRfidTokenBinding.bind(v)
+        dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.color.scrim))
 
         // 预填数据

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/user_info/AddFingerprintDialog.kt

@@ -15,6 +15,7 @@ class AddFingerprintDialog(val onCancel: () -> Unit) :
     private lateinit var binding: DialogAddFingerprintBinding
     override fun onBind(dialog: CustomDialog, p1: View) {
         binding = DialogAddFingerprintBinding.bind(p1)
+        dialog.isCancelable = false
         binding.cancel.setDebouncedClickListener {
             onCancel()
         }

+ 4 - 0
app/src/main/java/com/grkj/iscs/features/main/fragment/common/SelectMemberFragment.kt

@@ -123,6 +123,10 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
                 }
             } else {
                 item.isSelected = true
+                if ((item.avatar
+                        ?: viewModel.userBiometricDataVo.find { it.userId == item.userId }?.content)==null){
+                    PopTip.tip(R.string.current_user_has_not_face_data)
+                }
                 if (isLockerSelect) {
                     viewModel.userData.filter { it.userId in selectedLockerData.map { it.userId } }
                         .forEach { it.isSelected = false }

+ 32 - 35
app/src/main/java/com/grkj/iscs/features/main/viewmodel/MainViewModel.kt

@@ -63,47 +63,44 @@ class MainViewModel @Inject constructor() : BaseViewModel() {
                 DeviceConst.DOCK_TYPE_KEY -> {
                     dockBean.getKeyList().forEach { keyBean ->
                         if (keyBean.isExist) {
-                            Executor.repeatOnMain({
-                                keyBean.mac?.let { mac ->
-                                    ThreadUtils.runOnMain {
-                                        LoadingEvent.sendLoadingEvent(
-                                            CommonUtils.getStr(com.grkj.ui_base.R.string.loading_msg_return_key_start),
-                                            true
-                                        )
-                                    }
-                                    ThreadUtils.runOnIO {
-                                        suspend fun readJobTicket(mac: String) {
-                                            val isConnect =
-                                                BleConnectionManager.tryConnectWithOptionalCharge(
-                                                    mac
-                                                )
-                                            if (isConnect) {
-                                                val bleBean =
-                                                    BleConnectionManager.getBleDeviceByMac(mac)
-                                                Executor.delayOnMain(300) {
-                                                    bleBean?.let {
-                                                        LoadingEvent.sendLoadingEvent(
-                                                            CommonUtils.getStr(com.grkj.ui_base.R.string.loading_msg_get_ticket_status_start),
-                                                            true
-                                                        )
-                                                        BleConnectionManager.getCurrentStatus(
-                                                            4,
-                                                            it.bleDevice
-                                                        )
-                                                    }
+                            keyBean.mac?.let { mac ->
+                                ThreadUtils.runOnMain {
+                                    LoadingEvent.sendLoadingEvent(
+                                        CommonUtils.getStr(com.grkj.ui_base.R.string.loading_msg_return_key_start),
+                                        true
+                                    )
+                                }
+                                ThreadUtils.runOnIO {
+                                    suspend fun readJobTicket(mac: String) {
+                                        val isConnect =
+                                            BleConnectionManager.tryConnectWithOptionalCharge(
+                                                mac
+                                            )
+                                        if (isConnect) {
+                                            val bleBean =
+                                                BleConnectionManager.getBleDeviceByMac(mac)
+                                            Executor.delayOnMain(300) {
+                                                bleBean?.let {
+                                                    LoadingEvent.sendLoadingEvent(
+                                                        CommonUtils.getStr(com.grkj.ui_base.R.string.loading_msg_get_ticket_status_start),
+                                                        true
+                                                    )
+                                                    BleConnectionManager.getCurrentStatus(
+                                                        4,
+                                                        it.bleDevice
+                                                    )
                                                 }
-                                            } else {
-                                                delay(500)
-                                                readJobTicket(mac)
                                             }
-                                        }
-                                        if (!ISCSConfig.isDeviceRegistration) {
+                                        } else {
+                                            delay(1500)
                                             readJobTicket(mac)
                                         }
                                     }
+                                    if (!ISCSConfig.isDeviceRegistration) {
+                                        readJobTicket(mac)
+                                    }
                                 }
-                                return@repeatOnMain keyBean.mac == null
-                            }, 1000, true)
+                            }
                         }
                     }
                 }

+ 1 - 1
app/src/main/java/com/grkj/iscs/features/main/viewmodel/data_manage/WorkstationManageViewModel.kt

@@ -14,7 +14,7 @@ import kotlinx.coroutines.Dispatchers
  */
 @HiltViewModel
 class WorkstationManageViewModel @Inject constructor(val workstationRepository: IWorkstationRepository) :
-    BaseViewModel() {
+    BaseViewModel(null) {
     var workstationManageData: MutableList<WorkstationManageVo> = mutableListOf()
 
     /**

+ 1 - 1
app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/JobViewModel.kt

@@ -145,7 +145,7 @@ class JobViewModel @Inject constructor(
                 jobTicketRepository.getTicketPointsByTicketId(ticketId)
             val tempJobTicketUserId = jobTicketRepository.getTicketUsersByTicketId(ticketId)
             userBiometricDataVo =
-                userRepository.getUserBiometricDataByUserIds(userIds)
+                userRepository.getUserBiometricDataByUserIds(tempJobTicketUserId.map { it.userId })
             jobLockerData =
                 tempJobTicketUserId.filter { it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) }
             jobColockerData =

+ 1 - 0
app/src/main/res/values-en/strings.xml

@@ -443,5 +443,6 @@
     <string name="process_application_tv">Process application</string>
     <string name="please_select_process_application">please select process application</string>
     <string name="verify_failed">Verify failed</string>
+    <string name="current_user_has_not_face_data">The current user does not have facial data</string>
 
 </resources>

+ 1 - 0
app/src/main/res/values-zh/strings.xml

@@ -443,5 +443,6 @@
     <string name="process_application_tv">处理申请</string>
     <string name="please_select_process_application">请选择处理申请</string>
     <string name="verify_failed">验证失败</string>
+    <string name="current_user_has_not_face_data">当前用户不存在人脸数据</string>
 
 </resources>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -446,5 +446,6 @@
     <string name="process_application_tv">处理申请</string>
     <string name="please_select_process_application">请选择处理申请</string>
     <string name="verify_failed">验证失败</string>
+    <string name="current_user_has_not_face_data">当前用户不存在人脸数据</string>
 
 </resources>

+ 4 - 0
data/src/main/java/com/grkj/data/repository/impl/network/NetworkUserRepository.kt

@@ -116,4 +116,8 @@ class NetworkUserRepository @Inject constructor()  : BaseRepository(), IUserRepo
     override fun deleteFaceDataByUserId(userId: Long) {
         TODO("Not yet implemented")
     }
+
+    override fun getUserBiometricDataByUserIds(userIds: List<Long>): List<SysBiometricDataVo> {
+        TODO("Not yet implemented")
+    }
 }

+ 1 - 0
data/src/main/java/com/grkj/data/repository/impl/standard/HardwareRepository.kt

@@ -395,6 +395,7 @@ class HardwareRepository @Inject constructor(
         if (jobCardData != null) {
             logger.info("工卡存在,设置值")
             jobCardData.userId = userId
+            jobCardData.userName = MainDomainData.userInfo?.userName
             hardwareDao.updateCardInfo(jobCardData)
         } else {
             logger.info("没有检测到工卡,重新创建工卡")

+ 1 - 1
ui-base/src/main/java/com/grkj/ui_base/base/BaseViewModel.kt

@@ -17,7 +17,7 @@ import javax.inject.Inject
 /**
  * 界面模型基类
  */
-open class BaseViewModel @Inject constructor(
+open class BaseViewModel constructor(
     open val userRepository: IUserRepository? = null
 ) : ViewModel() {
     protected val logger: Logger = LoggerFactory.getLogger(this::class.java)