Browse Source

修改本机设备检查钥匙返回类型;添加取出钥匙接口

Frankensteinly 11 months ago
parent
commit
7125fc0b5d

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

@@ -241,7 +241,7 @@ object BusinessManager {
      *
      * @param needLockCount 需要的锁具的数量(可能在别的机柜取过)
      */
-    fun checkEquipCount(needLockCount: Int, callBack: (Pair<Byte, Pair<Boolean, String>>?, MutableMap<Byte, MutableList<DockBean.LockBean>>) -> Unit) {
+    fun checkEquipCount(needLockCount: Int, callBack: (Pair<Byte, DockBean.KeyBean?>?, MutableMap<Byte, MutableList<DockBean.LockBean>>) -> Unit) {
         var lockCount = 0
         val lockMap = ModBusController.getLocks(needLockCount)
         lockMap.forEach { (_, rfidList) ->

+ 2 - 2
app/src/main/java/com/grkj/iscs/modbus/ModBusController.kt

@@ -454,7 +454,7 @@ object ModBusController {
     /**
      * 获取一个钥匙(基于钥匙柜和便携柜不存在接一起的情况)
      */
-    fun getOneKey(): Pair<Byte, Pair<Boolean, String>>? {
+    fun getOneKey(): Pair<Byte, DockBean.KeyBean?>? {
         val keyDockList = dockList.filter { it.type == DOCK_TYPE_KEY || it.type == DOCK_TYPE_PORTABLE }
         val keyList = keyDockList.flatMap { it.getKeyList() }.filter { it.isExist }
         if (keyList.isEmpty()) {
@@ -465,7 +465,7 @@ object ModBusController {
 
         val addr = keyDockList.find { it.getKeyList().any { it.rfid == key?.rfid } }?.addr
 
-        return Pair(addr!!, Pair(key!!.isLeft, key.rfid!!))
+        return Pair(addr!!, key)
     }
 
     /**

+ 6 - 1
app/src/main/java/com/grkj/iscs/model/UrlConsts.kt

@@ -2,7 +2,7 @@ package com.grkj.iscs.model
 
 object UrlConsts {
     //    const val BASE_URL = "http://192.168.1.127:9090"
-    const val BASE_URL = "http://192.168.1.246:9090"
+    const val BASE_URL = "http://192.168.1.11:9090"
     const val WEB_SOCKET = "ws://192.168.1.127:9090/websocket/iot/127"
 
     const val AUTOCODE_TICKET_NUMBER = "JOB_TICKET_CODE"
@@ -101,4 +101,9 @@ object UrlConsts {
      * 获取作业票和关联数据
      */
     const val TICKET_EQUIP_DETAIL = "/iscs/hardware-api/selectTicketDetailById"
+
+    /**
+     * 取出钥匙
+     */
+    const val KEY_TAKE_UPDATE = "/iscs/hardware-api/updateTakeOutKey"
 }

+ 9 - 1
app/src/main/java/com/grkj/iscs/presenter/TicketDetailPresenter.kt

@@ -2,6 +2,7 @@ package com.grkj.iscs.presenter
 
 import com.grkj.iscs.BusinessManager
 import com.grkj.iscs.R
+import com.grkj.iscs.activity.TicketDetailActivity
 import com.grkj.iscs.base.BasePresenter
 import com.grkj.iscs.extentions.serialNo
 import com.grkj.iscs.iview.ITicketDetailView
@@ -118,8 +119,15 @@ class TicketDetailPresenter : BasePresenter<ITicketDetailView>() {
                     }
                     // null表示锁具数量不够,不给钥匙
                     if (keyPair != null) {
-                        // TODO 下发工作票、更新钥匙信息
+                        // 更新钥匙信息
+                        NetApi.updateKeyTake(ticketDetail.ticketId!!, keyPair.second?.rfid!!, mContext!!.serialNo()) {
+                            if (it) {
+                                // 下发工作票
+                                BusinessManager.sendTicketBusiness(keyPair.second?.mac!!, mvpView as TicketDetailActivity) { b, s ->
 
+                                }
+                            }
+                        }
                     }
                 }
 

+ 18 - 0
app/src/main/java/com/grkj/iscs/util/NetApi.kt

@@ -360,4 +360,22 @@ object NetApi {
             }, isGet = true, isAuth = true
         )
     }
+
+    /**
+     * 取出钥匙
+     */
+    fun updateKeyTake(ticketId: Long, keyNfc: String, serialNumber: String, callBack: (Boolean) -> Unit) {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.KEY_TAKE_UPDATE,
+            false,
+            mapOf(
+                "ticketId" to ticketId,
+                "keyNfc" to keyNfc,
+                "serialNumber" to serialNumber
+            ),
+            { res, _, _ ->
+                callBack.invoke(res != null)
+            }, isGet = false, isAuth = true
+        )
+    }
 }