Browse Source

优化蓝牙准备流程失败:重试添加500ms延时;作业票改成强制设置是上锁还是解锁,不再使用ticketStatus判断

Frankensteinly 8 months ago
parent
commit
981ba25738
1 changed files with 13 additions and 8 deletions
  1. 13 8
      app/src/main/java/com/grkj/iscs/BusinessManager.kt

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

@@ -533,7 +533,9 @@ object BusinessManager {
                 if (!isDone) {
                 if (!isDone) {
                     // 判断是否仍然待连,防止拿走;移到末尾,防止循环影响
                     // 判断是否仍然待连,防止拿走;移到末尾,防止循环影响
                     unregisterConnectListener(listener.mac)
                     unregisterConnectListener(listener.mac)
-                    registerConnectListener(listener.mac, listener.callBack)
+                    Executor.delayOnMain(500) {
+                        registerConnectListener(listener.mac, listener.callBack)
+                    }
                     return@runOnMain
                     return@runOnMain
                 }
                 }
                 // 判断是否仍然待连,防止拿走
                 // 判断是否仍然待连,防止拿走
@@ -757,6 +759,7 @@ object BusinessManager {
      * 下发工作票
      * 下发工作票
      */
      */
     private fun sendTicketBusiness(
     private fun sendTicketBusiness(
+        isLock: Boolean,
         mac: String,
         mac: String,
         ticketDetail: TicketDetailRespVO,
         ticketDetail: TicketDetailRespVO,
         lockList: MutableList<String?>?,
         lockList: MutableList<String?>?,
@@ -765,7 +768,7 @@ object BusinessManager {
     ) {
     ) {
         registerConnectListener(mac) { isDone, bleBean ->
         registerConnectListener(mac) { isDone, bleBean ->
             if (!isDone) {
             if (!isDone) {
-                sendTicketBusiness(mac, ticketDetail, lockList, activity, isNeedLoading)
+                sendTicketBusiness(isLock, mac, ticketDetail, lockList, activity, isNeedLoading)
                 return@registerConnectListener
                 return@registerConnectListener
             }
             }
             if (bleBean == null) {
             if (bleBean == null) {
@@ -774,7 +777,7 @@ object BusinessManager {
                 return@registerConnectListener
                 return@registerConnectListener
             }
             }
             // 单bleBean json赋值
             // 单bleBean json赋值
-            bleBean.ticketSend = generateTicketSendJson(ticketDetail, lockList)
+            bleBean.ticketSend = generateTicketSendJson(isLock, ticketDetail, lockList)
             bleBean.ticketSend?.let { itJson ->
             bleBean.ticketSend?.let { itJson ->
                 sendTicketWithRetry(itJson, bleBean.bleDevice, isNeedLoading)
                 sendTicketWithRetry(itJson, bleBean.bleDevice, isNeedLoading)
             }
             }
@@ -872,12 +875,12 @@ object BusinessManager {
      *
      *
      * @param vo 工作票详情
      * @param vo 工作票详情
      */
      */
-    private fun generateTicketSendJson(vo: TicketDetailRespVO, lockList: MutableList<String?>?): String {
+    private fun generateTicketSendJson(isLock: Boolean, vo: TicketDetailRespVO, lockList: MutableList<String?>?): String {
         // 用ticketStatus的"待上锁"进行判断
         // 用ticketStatus的"待上锁"进行判断
-        var isLock = true
-        vo.ticketStatus?.let {
-            isLock = it.toInt() < Constants.TICKET_STATUS_READY_TO_UNLOCK.toInt()
-        }
+//        var isLock = true
+//        vo.ticketStatus?.let {
+//            isLock = it.toInt() < Constants.TICKET_STATUS_READY_TO_UNLOCK.toInt()
+//        }
         val bo = WorkTicketSendBO(
         val bo = WorkTicketSendBO(
             cardNo = SPUtils.getLoginUser(MyApplication.instance!!.applicationContext)?.cardNfc,
             cardNo = SPUtils.getLoginUser(MyApplication.instance!!.applicationContext)?.cardNfc,
         )
         )
@@ -1192,6 +1195,7 @@ object BusinessManager {
                                 if (step == 4) {    // 上锁工作票
                                 if (step == 4) {    // 上锁工作票
                                     NetApi.getTicketEquipDetail(itBO.ticketId) { equipDetail ->
                                     NetApi.getTicketEquipDetail(itBO.ticketId) { equipDetail ->
                                         sendTicketBusiness(
                                         sendTicketBusiness(
+                                            true,
                                             currentModeMsg.bleBean.bleDevice.mac,
                                             currentModeMsg.bleBean.bleDevice.mac,
                                             ticketDetail,
                                             ticketDetail,
                                             equipDetail?.ticketLockVOList?.map { it.lockNfc }?.toMutableList(),
                                             equipDetail?.ticketLockVOList?.map { it.lockNfc }?.toMutableList(),
@@ -1201,6 +1205,7 @@ object BusinessManager {
                                     }
                                     }
                                 } else if (step == 7) { // 解锁工作票
                                 } else if (step == 7) { // 解锁工作票
                                     sendTicketBusiness(
                                     sendTicketBusiness(
+                                        false,
                                         currentModeMsg.bleBean.bleDevice.mac,
                                         currentModeMsg.bleBean.bleDevice.mac,
                                         ticketDetail,
                                         ticketDetail,
                                         null,
                                         null,