Browse Source

refactor(更新) :
- 新增硬件ID(`hardwareId`)的本地存储(`SPUtils`)与获取逻辑。
- 登录时,在获取并保存 `cabinetId` 的同时,增加保存 `hardwareId` 的操作。
- 取锁逻辑调整,现在根据 `hardwareId` 而非 `cabinetId` 来过滤已注册的挂锁。
- 增加了相关日志输出,以便于调试挂锁数据和硬件ID的匹配情况。

周文健 4 days ago
parent
commit
ec9c275acd

+ 4 - 1
app/src/main/java/com/grkj/iscs_mars/BusinessManager.kt

@@ -81,6 +81,7 @@ import com.sik.cronjob.managers.CronJobScanner
 import com.sik.sikandroid.activity.ActivityTracker
 import com.sik.sikandroid.activity.ActivityTracker
 import com.sik.sikcore.SIKCore
 import com.sik.sikcore.SIKCore
 import com.sik.sikcore.date.TimeUtils
 import com.sik.sikcore.date.TimeUtils
+import com.sik.sikcore.extension.toJson
 import com.sik.sikcore.thread.ThreadUtils
 import com.sik.sikcore.thread.ThreadUtils
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.async
 import kotlinx.coroutines.async
@@ -824,11 +825,13 @@ object BusinessManager {
                 val slotTypeList = slotType.await()
                 val slotTypeList = slotType.await()
                 val keyStatusList = keyStatus.await()
                 val keyStatusList = keyStatus.await()
 
 
+                LogUtil.i("挂锁数据:${locksPage?.records?.toJson()}")
+                LogUtil.i("锁柜id:${SPUtils.getHardwareId()}")
                 // —— 在 Default 线程做计算密集操作 ——
                 // —— 在 Default 线程做计算密集操作 ——
                 val lockMap = withContext(Dispatchers.Default) {
                 val lockMap = withContext(Dispatchers.Default) {
                     ModBusController.getLocks(
                     ModBusController.getLocks(
                         needLockCount,
                         needLockCount,
-                        locksPage?.records?.filter { it.hardwareId != null && it.hardwareId == SPUtils.getCabinetId() }
+                        locksPage?.records?.filter { it.hardwareId != null && it.hardwareId == SPUtils.getHardwareId() }
                             ?.mapNotNull { it.lockNfc } ?: mutableListOf(),
                             ?.mapNotNull { it.lockNfc } ?: mutableListOf(),
                         slotsPage?.records?.filter {
                         slotsPage?.records?.filter {
                             it.slotType == slotTypeList.find { d -> d.dictLabel == "锁" }?.dictValue && it.status == slotStatusList.find { d -> d.dictLabel == "异常" }?.dictValue
                             it.slotType == slotTypeList.find { d -> d.dictLabel == "锁" }?.dictValue && it.status == slotStatusList.find { d -> d.dictLabel == "异常" }?.dictValue

+ 1 - 0
app/src/main/java/com/grkj/iscs_mars/modbus/ModBusController.kt

@@ -1196,6 +1196,7 @@ object ModBusController {
         var provideCount = 0
         var provideCount = 0
         LogUtil.i("异常锁rfid:${exceptionLocks}")
         LogUtil.i("异常锁rfid:${exceptionLocks}")
         LogUtil.i("异常锁仓位:${exceptionSlots.joinToString(",") { "${it.row},${it.col}" }}")
         LogUtil.i("异常锁仓位:${exceptionSlots.joinToString(",") { "${it.row},${it.col}" }}")
+        LogUtil.i("已注册的挂锁:${registerLockRfid.joinToString(",")}")
         for (lockDockIndex in lockDockList.indices) {
         for (lockDockIndex in lockDockList.indices) {
             if (provideCount >= needLockCount) break
             if (provideCount >= needLockCount) break
             val validLocks = lockDockList[lockDockIndex].getLockList()
             val validLocks = lockDockList[lockDockIndex].getLockList()

+ 14 - 0
app/src/main/java/com/grkj/iscs_mars/util/SPUtils.kt

@@ -48,6 +48,7 @@ object SPUtils {
     private const val KEY_TICKET_TAKE_LOCK_EXCEPTION = "ticket_take_lock_exception"
     private const val KEY_TICKET_TAKE_LOCK_EXCEPTION = "ticket_take_lock_exception"
 
 
     private const val KEY_CABINET_ID = "key_cabinet_id"
     private const val KEY_CABINET_ID = "key_cabinet_id"
+    private const val KEY_HARDWARE_ID = "key_hardware_id"
 
 
     private const val KEY_USERINFO = "key_userinfo"
     private const val KEY_USERINFO = "key_userinfo"
 
 
@@ -293,4 +294,17 @@ object SPUtils {
     fun saveCabinetId(cabinetId: String) {
     fun saveCabinetId(cabinetId: String) {
         KEY_CABINET_ID.saveMMKVData(cabinetId)
         KEY_CABINET_ID.saveMMKVData(cabinetId)
     }
     }
+    /**
+     * 硬件id
+     */
+    fun getHardwareId(): String {
+        return KEY_HARDWARE_ID.getMMKVData("6")
+    }
+
+    /**
+     * 保存硬件id
+     */
+    fun saveHardwareId(hardwareId: String) {
+        KEY_HARDWARE_ID.saveMMKVData(hardwareId)
+    }
 }
 }

+ 4 - 1
app/src/main/java/com/grkj/iscs_mars/view/presenter/HomePresenter.kt

@@ -93,7 +93,10 @@ class HomePresenter : BasePresenter<IHomeView>() {
     fun getAndSaveCabinetId() {
     fun getAndSaveCabinetId() {
         NetApi.getIsLockCabinetPage {
         NetApi.getIsLockCabinetPage {
             it?.records?.find { it.serialNumber == MyApplication.instance?.serialNo() }
             it?.records?.find { it.serialNumber == MyApplication.instance?.serialNo() }
-                ?.let { SPUtils.saveCabinetId(it.cabinetId ?: "") }
+                ?.let {
+                    SPUtils.saveCabinetId(it.cabinetId ?: "")
+                    SPUtils.saveHardwareId(it.hardwareId ?: "")
+                }
         }
         }
     }
     }