Browse Source

refactor(更新)
- 硬件管理,删除bug修复

周文健 4 tháng trước cách đây
mục cha
commit
5ba72b8947

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

@@ -147,19 +147,20 @@ class CardManageFragment : BaseFragment<FragmentCardManageBinding>() {
         }
         TipDialog.show(
             msg = CommonUtils.getStr(R.string.check_delete_card).toString(),
-            countDownTime = 10
-        ) {
-            val ids = viewModel.cardManageDataList.filter { it.isSelected }.map { it.cardId }
-            viewModel.deleteSelectedCard(ids).observe(this) { ok ->
-                TipDialog.show(
-                    dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
-                    msg = CommonUtils.getStr(if (ok) R.string.card_manage_delete_succeed else R.string.card_manage_delete_failed)
-                        .toString(),
-                    showConfirm = false,
-                    countDownTime = 10
-                )
-                loadCards(reset = true)
+            countDownTime = 10,
+            onConfirmClick = {
+                val ids = viewModel.cardManageDataList.filter { it.isSelected }.map { it.cardId }
+                viewModel.deleteSelectedCard(ids).observe(this) { ok ->
+                    TipDialog.show(
+                        dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
+                        msg = CommonUtils.getStr(if (ok) R.string.card_manage_delete_succeed else R.string.card_manage_delete_failed)
+                            .toString(),
+                        showConfirm = false,
+                        countDownTime = 10
+                    )
+                    loadCards(reset = true)
+                }
             }
-        }
+        )
     }
 }

+ 13 - 12
app/src/main/java/com/grkj/iscs/features/main/fragment/hardware_manage/LockManageFragment.kt

@@ -144,18 +144,19 @@ class LockManageFragment : BaseFragment<FragmentLockManageBinding>() {
         }
         TipDialog.show(
             msg = CommonUtils.getStr(R.string.check_delete_lock).toString(),
-            countDownTime = 10
-        ) {
-            val ids = viewModel.lockManageDataList.filter { it.isSelected }.map { it.lockId }
-            viewModel.deleteSelectedLock(ids).observe(this) { ok ->
-                TipDialog.show(
-                    dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
-                    msg = CommonUtils.getStr(if (ok) R.string.lock_manage_delete_succeed else R.string.lock_manage_delete_failed)
-                        .toString(),
-                    showConfirm = false, countDownTime = 10
-                )
-                loadLocks(reset = true)
+            countDownTime = 10,
+            onConfirmClick = {
+                val ids = viewModel.lockManageDataList.filter { it.isSelected }.map { it.lockId }
+                viewModel.deleteSelectedLock(ids).observe(this) { ok ->
+                    TipDialog.show(
+                        dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
+                        msg = CommonUtils.getStr(if (ok) R.string.lock_manage_delete_succeed else R.string.lock_manage_delete_failed)
+                            .toString(),
+                        showConfirm = false, countDownTime = 10
+                    )
+                    loadLocks(reset = true)
+                }
             }
-        }
+        )
     }
 }

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

@@ -10,6 +10,7 @@ import com.drake.brv.utils.divider
 import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
+import com.grkj.data.enums.CommonDictDataEnum
 import com.grkj.data.model.dos.IsRfidToken
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentRfidTokenManageBinding
@@ -84,9 +85,10 @@ class RfidTokenManageFragment : BaseFragment<FragmentRfidTokenManageBinding>() {
     private fun bindTokenItem(holder: BindingAdapter.BindingViewHolder) {
         val bind = holder.getBinding<ItemRfidTokenManageBinding>()
         val item = holder.getModel<IsRfidToken>()
-
+        bind.rfidCode.text = item.rfidCode
         bind.rfid.text = item.rfid
-        bind.status.text = if (item.status == "0") "正常" else "异常"
+        bind.status.text =
+            if (item.status == CommonDictDataEnum.RFID_TOKEN_STATUS.commonDictRes.find { it.dictLabel == "正常" }?.dictValue) "正常" else "异常"
         bind.select.apply {
             setOnCheckedChangeListener(null)
             isChecked = item.isSelected
@@ -139,19 +141,21 @@ class RfidTokenManageFragment : BaseFragment<FragmentRfidTokenManageBinding>() {
         }
         TipDialog.show(
             msg = CommonUtils.getStr(R.string.check_delete_rfid_token).toString(),
-            countDownTime = 10
-        ) {
-            val ids = viewModel.rfidTokenManageDataList.filter { it.isSelected }.map { it.rfidId }
-            viewModel.deleteSelectedRfidToken(ids).observe(this) { ok ->
-                TipDialog.show(
-                    dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
-                    msg = CommonUtils.getStr(if (ok) R.string.rfid_token_manage_delete_succeed else R.string.rfid_token_manage_delete_failed)
-                        .toString(),
-                    showConfirm = false,
-                    countDownTime = 10
-                )
-                loadTokens(reset = true)
+            countDownTime = 10,
+            onConfirmClick = {
+                val ids =
+                    viewModel.rfidTokenManageDataList.filter { it.isSelected }.map { it.rfidId }
+                viewModel.deleteSelectedRfidToken(ids).observe(this) { ok ->
+                    TipDialog.show(
+                        dialogType = if (ok) TipDialog.DialogType.SUCCESS else TipDialog.DialogType.ERROR,
+                        msg = CommonUtils.getStr(if (ok) R.string.rfid_token_manage_delete_succeed else R.string.rfid_token_manage_delete_failed)
+                            .toString(),
+                        showConfirm = false,
+                        countDownTime = 10
+                    )
+                    loadTokens(reset = true)
+                }
             }
-        }
+        )
     }
 }

+ 6 - 2
app/src/main/java/com/grkj/iscs/features/main/viewmodel/hardware_manage/CardManageViewModel.kt

@@ -88,7 +88,9 @@ class CardManageViewModel @Inject constructor(
                 } else {
                     CommonDictDataEnum.JOB_CARD_STATUS.commonDictRes.find { it.dictLabel == "异常" }?.dictValue
                 }
-            isCard?.cardCode = "CARD_${defaultCardCodeSize + 1}"
+            if (isCard?.cardCode.isNullOrEmpty()) {
+                isCard?.cardCode = "CARD_${defaultCardCodeSize + 1}"
+            }
             isCard?.let {
                 hardwareRepository.addCardInfo(it)
                 emit(true)
@@ -108,7 +110,9 @@ class CardManageViewModel @Inject constructor(
                 } else {
                     CommonDictDataEnum.JOB_CARD_STATUS.commonDictRes.find { it.dictLabel == "异常" }?.dictValue
                 }
-            isCard?.cardCode = "CARD_${defaultCardCodeSize + 1}"
+            if (isCard?.cardCode.isNullOrEmpty()) {
+                isCard?.cardCode = "CARD_${defaultCardCodeSize + 1}"
+            }
             isCard?.let {
                 hardwareRepository.updateCardInfo(it)
                 emit(true)

+ 19 - 11
app/src/main/java/com/grkj/iscs/features/main/viewmodel/hardware_manage/KeyManageViewModel.kt

@@ -64,13 +64,16 @@ class KeyManageViewModel @Inject constructor(
     fun addKey(data: AddKeyDataVo): LiveData<Boolean> {
         return liveData(Dispatchers.IO) {
             var defaultKeyCodeSize = hardwareRepository.getDefaultKeyNameCount()
-            var isKey = IsKey()
-            isKey = BeanUtils.copyData<IsKey>(data, isKey)
-            isKey.keyCode = "KEY_${defaultKeyCodeSize + 1}"
-            isKey.exStatus =
+            var isKey = BeanUtils.copyProperties(data, IsKey::class.java)
+            if (isKey?.keyCode.isNullOrEmpty()) {
+                isKey?.keyCode = "KEY_${defaultKeyCodeSize + 1}"
+            }
+            isKey?.exStatus =
                 CommonDictDataEnum.KEY_STATUS.commonDictRes.find { it.dictLabel == if (data.exStatus) "正常" else "异常" }?.dictValue
-            hardwareRepository.addKeyInfo(isKey)
-            emit(true)
+            isKey?.let {
+                hardwareRepository.addKeyInfo(it)
+                emit(true)
+            } ?: emit(false)
         }
     }
 
@@ -79,12 +82,17 @@ class KeyManageViewModel @Inject constructor(
      */
     fun updateKey(data: UpdateKeyDataVo): LiveData<Boolean> {
         return liveData(Dispatchers.IO) {
-            var isKey = IsKey()
-            isKey = BeanUtils.copyData<IsKey>(data, isKey)
-            isKey.exStatus =
+            var defaultKeyCodeSize = hardwareRepository.getDefaultKeyNameCount()
+            var isKey = BeanUtils.copyProperties(data, IsKey::class.java)
+            if (isKey?.keyCode.isNullOrEmpty()) {
+                isKey?.keyCode = "KEY_${defaultKeyCodeSize + 1}"
+            }
+            isKey?.exStatus =
                 CommonDictDataEnum.KEY_STATUS.commonDictRes.find { it.dictLabel == if (data.exStatus) "正常" else "异常" }?.dictValue
-            hardwareRepository.updateKeyInfo(isKey)
-            emit(true)
+            isKey?.let {
+                hardwareRepository.updateKeyInfo(it)
+                emit(true)
+            } ?: emit(false)
         }
     }
 }

+ 19 - 11
app/src/main/java/com/grkj/iscs/features/main/viewmodel/hardware_manage/LockManageViewModel.kt

@@ -65,13 +65,16 @@ class LockManageViewModel @Inject constructor(
     fun addLock(data: AddLockDataVo): LiveData<Boolean> =
         liveData(Dispatchers.IO) {
             var defaultLockCodeSize = hardwareRepository.getDefaultLockNameCount()
-            var isLock = IsLock()
-            isLock = BeanUtils.copyData<IsLock>(data, isLock)
-            isLock.lockCode = "LOCK_${defaultLockCodeSize + 1}"
-            isLock.exStatus =
+            var isLock = BeanUtils.copyProperties(data, IsLock::class.java)
+            if (isLock?.lockCode.isNullOrEmpty()) {
+                isLock?.lockCode = "LOCK_${defaultLockCodeSize + 1}"
+            }
+            isLock?.exStatus =
                 CommonDictDataEnum.PADLOCK_STATUS.commonDictRes.find { it.dictLabel == if (data.exStatus) "正常" else "异常" }?.dictValue
-            hardwareRepository.addLockInfo(isLock)
-            emit(true)
+            isLock?.let {
+                hardwareRepository.addLockInfo(it)
+                emit(true)
+            } ?: emit(false)
         }
 
     /**
@@ -79,11 +82,16 @@ class LockManageViewModel @Inject constructor(
      */
     fun updateLock(data: UpdateLockDataVo): LiveData<Boolean> =
         liveData(Dispatchers.IO) {
-            var isLock = IsLock()
-            isLock = BeanUtils.copyData<IsLock>(data, isLock)
-            isLock.exStatus =
+            var defaultLockCodeSize = hardwareRepository.getDefaultLockNameCount()
+            var isLock = BeanUtils.copyProperties(data, IsLock::class.java)
+            if (isLock?.lockCode.isNullOrEmpty()) {
+                isLock?.lockCode = "LOCK_${defaultLockCodeSize + 1}"
+            }
+            isLock?.exStatus =
                 CommonDictDataEnum.PADLOCK_STATUS.commonDictRes.find { it.dictLabel == if (data.exStatus) "正常" else "异常" }?.dictValue
-            hardwareRepository.updateLockInfo(isLock)
-            emit(true)
+            isLock?.let {
+                hardwareRepository.updateLockInfo(it)
+                emit(true)
+            } ?: emit(false)
         }
 }

+ 30 - 9
app/src/main/java/com/grkj/iscs/features/main/viewmodel/hardware_manage/RfidTokenManageViewModel.kt

@@ -2,6 +2,7 @@ package com.grkj.iscs.features.main.viewmodel.hardware_manage
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
+import com.grkj.data.enums.CommonDictDataEnum
 import com.grkj.data.model.dos.IsRfidToken
 import com.grkj.data.model.vo.AddRfidTokenDataVo
 import com.grkj.data.model.vo.RfidTokenManageFilterVo
@@ -59,10 +60,21 @@ class RfidTokenManageViewModel @Inject constructor(
      */
     fun addRfidToken(data: AddRfidTokenDataVo): LiveData<Boolean> =
         liveData(Dispatchers.IO) {
-            var token = IsRfidToken()
-            token = BeanUtils.copyData<IsRfidToken>(data, token)
-            hardwareRepository.addRfidTokenInfo(token)
-            emit(true)
+            var defaultRfidCodeSize = hardwareRepository.getDefaultRFIDNameCount()
+            var token = BeanUtils.copyProperties(data, IsRfidToken::class.java)
+            if (token?.rfidCode.isNullOrEmpty()) {
+                token?.rfidCode = "RFID_${defaultRfidCodeSize + 1}"
+            }
+            token?.status =
+                if (data.exStatus) {
+                    CommonDictDataEnum.RFID_TOKEN_STATUS.commonDictRes.find { it.dictLabel == "正常" }?.dictValue
+                } else {
+                    CommonDictDataEnum.RFID_TOKEN_STATUS.commonDictRes.find { it.dictLabel == "异常" }?.dictValue
+                }
+            token?.let {
+                hardwareRepository.addRfidTokenInfo(it)
+                emit(true)
+            } ?: emit(false)
         }
 
     /**
@@ -71,10 +83,19 @@ class RfidTokenManageViewModel @Inject constructor(
     fun updateRfidToken(data: UpdateRfidTokenDataVo): LiveData<Boolean> =
         liveData(Dispatchers.IO) {
             var defaultRfidCodeSize = hardwareRepository.getDefaultRFIDNameCount()
-            var token = IsRfidToken()
-            token = BeanUtils.copyData<IsRfidToken>(data, token)
-            token.rfidCode = "RFID_${defaultRfidCodeSize + 1}"
-            hardwareRepository.updateRfidTokenInfo(token)
-            emit(true)
+            var token = BeanUtils.copyProperties(data, IsRfidToken::class.java)
+            if (token?.rfidCode.isNullOrEmpty()) {
+                token?.rfidCode = "RFID_${defaultRfidCodeSize + 1}"
+            }
+            token?.status =
+                if (data.exStatus) {
+                    CommonDictDataEnum.RFID_TOKEN_STATUS.commonDictRes.find { it.dictLabel == "正常" }?.dictValue
+                } else {
+                    CommonDictDataEnum.RFID_TOKEN_STATUS.commonDictRes.find { it.dictLabel == "异常" }?.dictValue
+                }
+            token?.let {
+                hardwareRepository.updateRfidTokenInfo(it)
+                emit(true)
+            } ?: emit(false)
         }
 }

+ 4 - 4
data/src/main/java/com/grkj/data/dao/HardwareDao.kt

@@ -108,25 +108,25 @@ interface HardwareDao {
     /**
      * 获取默认数据数量
      */
-    @Query("select count(1) from is_key where key_code like '钥匙-%'")
+    @Query("select count(1) from is_key where key_code like 'KEY_%'")
     fun getDefaultKeyNameCount(): Int
 
     /**
      * 获取默认数据数量
      */
-    @Query("select count(1) from is_lock where lock_code like '挂锁-%'")
+    @Query("select count(1) from is_lock where lock_code like 'LOCK_%'")
     fun getDefaultLockNameCount(): Int
 
     /**
      * 获取默认数据数量
      */
-    @Query("select count(1) from is_job_card where card_code like '工卡-%'")
+    @Query("select count(1) from is_job_card where card_code like 'CARD_%'")
     fun getDefaultCardNameCount(): Int
 
     /**
      * 获取默认数据数量
      */
-    @Query("select count(1) from is_rfid_token where rfid_code like 'RFID标签-%'")
+    @Query("select count(1) from is_rfid_token where rfid_code like 'RFID_%'")
     fun getDefaultRfidTokenNameCount(): Int
 
     /**

+ 1 - 1
data/src/main/java/com/grkj/data/model/vo/AddCardDataVo.kt

@@ -5,7 +5,7 @@ package com.grkj.data.model.vo
  */
 data class AddCardDataVo(
     val cardNfc: String,
-    val userId: Long,
+    val userId: Long?,
     val userName: String,
     val exStatus: Boolean,
     val exRemark: String?

+ 2 - 2
data/src/main/java/com/grkj/data/model/vo/AddKeyDataVo.kt

@@ -5,8 +5,8 @@ package com.grkj.data.model.vo
  */
 data class AddKeyDataVo(
     val keyCode: String,
-    val keyNfc: String,
-    val macAddress: String,
+    val keyNfc: String?,
+    val macAddress: String?,
     val exStatus: Boolean,
     val exRemark: String?
 )

+ 1 - 1
data/src/main/java/com/grkj/data/model/vo/AddLockDataVo.kt

@@ -5,7 +5,7 @@ package com.grkj.data.model.vo
  */
 data class AddLockDataVo(
     val lockCode: String,
-    val lockNfc: String,
+    val lockNfc: String?,
     val exStatus: Boolean,
     val exRemark: String?
 )

+ 1 - 1
data/src/main/java/com/grkj/data/model/vo/AddRfidTokenDataVo.kt

@@ -4,7 +4,7 @@ package com.grkj.data.model.vo
  * 添加rfid标签
  */
 data class AddRfidTokenDataVo(
-    val rfidCode: String,
+    val rfidCode: String?,
     val rfid: String,
     val exStatus: Boolean,
     val exRemark: String?

+ 2 - 2
data/src/main/java/com/grkj/data/model/vo/UpdateKeyDataVo.kt

@@ -6,8 +6,8 @@ package com.grkj.data.model.vo
 data class UpdateKeyDataVo(
     val keyId: Long,
     val keyCode: String,
-    val keyNfc: String,
-    val macAddress: String,
+    val keyNfc: String?,
+    val macAddress: String?,
     val exStatus: Boolean,
     val exRemark: String?
 )

+ 1 - 1
data/src/main/java/com/grkj/data/model/vo/UpdateLockDataVo.kt

@@ -6,7 +6,7 @@ package com.grkj.data.model.vo
 data class UpdateLockDataVo(
     val lockId: Long,
     val lockCode: String,
-    val lockNfc: String,
+    val lockNfc: String?,
     val exStatus: Boolean,
     val exRemark: String?
 )

+ 1 - 1
data/src/main/java/com/grkj/data/model/vo/UpdateRfidTokenDataVo.kt

@@ -5,7 +5,7 @@ package com.grkj.data.model.vo
  */
 data class UpdateRfidTokenDataVo(
     val rfidId: Long,
-    val rfidCode: String,
+    val rfidCode: String?,
     val rfid: String,
     val exStatus: Boolean,
     val exRemark: String?

+ 0 - 2
ui-base/src/main/java/com/grkj/ui_base/utils/extension/DialogXExtension.kt

@@ -7,7 +7,6 @@ import com.kongzue.dialogx.dialogs.PopTip
  * 使用dialog模式显示
  */
 fun PopTip.tipDialog(msg: String) {
-    dialogImplMode = DialogX.IMPL_MODE.DIALOG_FRAGMENT
     message = msg
     showShort()
 }
@@ -17,7 +16,6 @@ fun PopTip.tipDialog(msg: String) {
  * 使用dialog模式显示
  */
 fun PopTip.tipDialog(msg: Int) {
-    dialogImplMode = DialogX.IMPL_MODE.DIALOG_FRAGMENT
     setMessage(msg)
     showShort()
 }