瀏覽代碼

修复设备归还判断bug

Frankensteinly 1 年之前
父節點
當前提交
3b0f0df7e1

+ 0 - 2
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -110,8 +110,6 @@ object BusinessManager {
                                             ModBusController.updateKeyRfid(dockBean.addr.toInt(), true, rfid)
                                             // TODO 从HTTP读取Mac
                                             // TODO 蓝牙通信
-                                            // TODO 演示用,要删
-                                            PresentationManager.updateLockReturnStatus(rfid)
                                         }
                                         ModBusController.controlKeyBuckle(false, isLeft = true, dockBean.addr.toInt() - 1)
                                     }

+ 6 - 1
app/src/main/java/com/grkj/iscs/presentation/PresentationLoginActivity.kt

@@ -113,7 +113,12 @@ class PresentationLoginActivity : BaseActivity<ActivityPresentationLoginBinding>
                                     }
                                 }
                                 DEVICE_TYPE_LOCK -> {
-
+                                    Executor.runOnMain {
+                                        ModBusController.readLockRfid(dockBean.addr.toInt() - 1, deviceBean.idx) { res ->
+                                            val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
+                                            PresentationManager.updateLockReturnStatus(rfid)
+                                        }
+                                    }
                                 }
                             }
                         }

+ 22 - 19
app/src/main/java/com/grkj/iscs/presentation/PresentationManager.kt

@@ -5,6 +5,7 @@ import com.grkj.iscs.modbus.ModBusController
 import com.grkj.iscs.model.DeviceConst
 import com.grkj.iscs.model.WorkTicketBean
 import com.grkj.iscs.model.WorkTicketStatusBean
+import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
 
@@ -200,28 +201,30 @@ object PresentationManager {
     var ticketCardNo = ""
 
     fun updateLockReturnStatus(rfid: String) {
-        val pServerTicket = workTicketList.find { it.workTicketBean?.data!!.any { it.dataList!!.any { it.infoRfidNo == rfid } } }
-        pServerTicket?.let {
-            val dockList = ModBusController.getDockByType(DeviceConst.DOCK_TYPE_PORTABLE)
-            if (dockList.isEmpty()) {
-                return
-            }
-            val dockLockRfidList = dockList[0].getLockList().map { it.rfid }
+        Executor.runOnMain {
+            val pServerTicket = workTicketList.find { it.workTicketBean?.data!!.any { it.dataList!!.any { it.infoRfidNo == rfid } } }
+            pServerTicket?.let {
+                val dockList = ModBusController.getDockByType(DeviceConst.DOCK_TYPE_PORTABLE)
+                if (dockList.isEmpty()) {
+                    return@runOnMain
+                }
+                val dockLockRfidList = dockList[0].getLockList().map { it.rfid }
 
-            val ticketLockRfidList = mutableListOf<String?>()
+                val ticketLockRfidList = mutableListOf<String?>()
 
-            // 遍历 data 列表
-            it.workTicketBean?.data?.forEach { dataDto ->
-                // 遍历 dataList 列表
-                dataDto.dataList?.forEach { dataListDto ->
-                    // 添加 infoRfidNo 到集合中
-                    ticketLockRfidList.add(dataListDto.infoRfidNo)
+                // 遍历 data 列表
+                it.workTicketBean?.data?.forEach { dataDto ->
+                    // 遍历 dataList 列表
+                    dataDto.dataList?.forEach { dataListDto ->
+                        // 添加 infoRfidNo 到集合中
+                        ticketLockRfidList.add(dataListDto.infoRfidNo)
+                    }
+                }
+                it.isAllLocksReturned = dockLockRfidList.containsAll(ticketLockRfidList)
+                if (it.isAllLocksReturned && it.status == 5) {
+                    ToastUtils.tip("工作票已完成")
+                    it.status = 6
                 }
-            }
-            it.isAllLocksReturned = ticketLockRfidList.containsAll(dockLockRfidList)
-            if (it.isAllLocksReturned && it.status == 5) {
-                ToastUtils.tip("工作票已完成")
-                it.status = 6
             }
         }
     }