Prechádzať zdrojové kódy

1. 调整钥匙归还接口,上锁任务调试完成
2. 解锁任务调试中,目前钥匙归还后无论是否成功都会直接结束任务

bjb 3 týždňov pred
rodič
commit
3fad8dadad

+ 1 - 1
app/src/main/java/com/iscs/bozzys/api/ApiService.kt

@@ -346,7 +346,7 @@ interface ApiService {
      * 归还钥匙
      */
     @Headers("Content-Type: application/json")
-    @POST("/admin-api/isc/work-handle/updateKeyBack")
+    @POST("/admin-api/isc/work-handle-pda/updateKeyBack")
     suspend fun returnKey(
         @Body body: UpdateReturn,
         @HeaderMap headers: Map<String, String> = ApiRequest.getUserHeaders()

+ 3 - 3
app/src/main/java/com/iscs/bozzys/api/KeyTicket.kt

@@ -21,13 +21,13 @@ data class KeyTicket(
     /**
      * 获取归还钥匙提交的参数
      *
-     * @param keyNfc 钥匙rfid
+     * @param macAddress 钥匙蓝牙Mac
      */
-    fun getReturnParams(keyNfc: String): UpdateReturn {
+    fun getReturnParams(macAddress: String): UpdateReturn {
         val params = UpdateReturn(0, "", "", mutableListOf())
         // 检查作业完成情况
         data.getOrNull(0)?.let { keyData ->
-            params.keyNfc = keyNfc
+            params.macAddress = macAddress
             keyData.dataList.forEach { point ->
                 params.target = point.target
                 params.list += ReturnKey(

+ 3 - 1
app/src/main/java/com/iscs/bozzys/api/ReturnInfo.kt

@@ -10,11 +10,13 @@ import kotlinx.serialization.Serializable
  * @param orderNo       作业编号
  * @param backStatus    归还状态
  *                      0-失败 1-成功
+ * @param keyBack       1-已完成点位更新
  */
 @Serializable
 data class ReturnInfo(
     val workName: String,
     val nodeName: String,
     val orderNo: String,
-    val backStatus: String
+    val backStatus: String,
+    val keyBack: String?
 )

+ 1 - 1
app/src/main/java/com/iscs/bozzys/api/UpdateReturn.kt

@@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable
  * 更新归还信息
  */
 @Serializable
-data class UpdateReturn(var target: Int, var keyNfc: String, var hardwareCode: String, val list: MutableList<ReturnKey>)
+data class UpdateReturn(var target: Int, var macAddress: String, var hardwareCode: String, val list: MutableList<ReturnKey>)
 
 /**
  * 归还挂锁

+ 14 - 11
app/src/main/java/com/iscs/bozzys/utils/ble/BleTask.kt

@@ -197,7 +197,8 @@ object BleTask {
                 pkgList.add(mainPkg)
                 // 校验是否有子包,如果有,继续读取子包数据
                 for (idx in 1 until mainPkg.pkgTotal) {
-                    val subPkg = bm.writeByResponse(token.buildBLEGetTicketInfoCMD(idx, mainPkg.pkgTotal)).getTicketPackageInfo()
+                    val subPkg =
+                        bm.writeByResponse(token.buildBLEGetTicketInfoCMD(idx, mainPkg.pkgTotal)).getTicketPackageInfo()
                     pkgList.add(subPkg)
                 }
                 var datas = byteArrayOf()
@@ -210,17 +211,19 @@ object BleTask {
                     // 处理作业票完成情况
                     val ticket = json.decodeFromString<KeyTicket>(ticketJson)
                     // LogUtil.i("BleTask", "[${device.address}] 解析作业")
-                    // 先找到蓝牙指定的设备NFC
-                    val keys = ApiRequest.getKeyList(mutableMapOf("page" to 1, "pageSize" to -1)).getOrElse { it.getResponse() }
-                    keys.data?.list?.find { it.macAddress == device.address }?.let { key ->
-                        val params = ticket.getReturnParams(key.keyNfc)
-                        // 执行归还数据核对
-                        LogUtil.i("BleTask", "[${device.address}] 提交数据 -> $params")
-                        val keyRsp = ApiRequest.returnKey(params).getOrElse { it.getResponse() }
-                        LogUtil.i("BleTask", "[${device.address}] 提交返回 -> ${keyRsp.data}")
-                        // 归还钥匙接口调用结果验证
-                        listener.forEach { it.onReadTicketSuccess(device.address, ticket) }
+                    val params = ticket.getReturnParams(device.address)
+                    // 执行归还数据核对
+                    LogUtil.i("BleTask", "[${device.address}] 提交数据 -> $params")
+                    val keyRsp = ApiRequest.returnKey(params).getOrElse { it.getResponse() }
+                    LogUtil.i("BleTask", "[${device.address}] 提交返回 -> ${keyRsp.data}")
+                    if (keyRsp.data?.keyBack == "1") {
+                        // 切换钥匙为待机模式
+                        val switch = bm.writeByResponse(token.buildBLESwitchRunModeCMD(BleRunMode.STBY))
+                            .getSwitchRunModeResult()
+                        LogUtil.i("BleTask", "[${device.address}] 切换模式 -> ${if (switch) "成功" else "失败"}")
                     }
+                    // 归还钥匙接口调用结果验证
+                    listener.forEach { it.onReadTicketSuccess(device.address, ticket) }
                 } catch (e: Exception) {
                     LogUtil.i("BleTask", "[${device.address}] 解析异常 -> $e")
                 }

+ 1 - 1
app/src/main/java/com/iscs/bozzys/utils/network/Request.kt

@@ -28,7 +28,7 @@ object Request {
     // 网络请求的基地址
     // 外网IP "http://120.27.232.27:48080"
     // 本地IP "http://192.168.0.10:48080"
-    private const val BASE_URL = "http://120.27.232.27:48080"
+    private const val BASE_URL = "http://192.168.0.10:48080"
 
     // 构建请求客户端
     private val okClient = OkHttpClient.Builder()