Explorar o código

优化归还授权校验逻辑;添加归还挂锁更新接口;添加取出挂锁更新接口

Frankensteinly hai 11 meses
pai
achega
1457c73731

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

@@ -25,7 +25,6 @@ import com.grkj.iscs.extentions.toByteArray
 import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.modbus.DockBean
 import com.grkj.iscs.modbus.ModBusController
-import com.grkj.iscs.model.Constants.NEED_AUTH
 import com.grkj.iscs.model.Constants.PERMISSION_REQUEST_CODE
 import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_CARD
 import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_FINGERPRINT
@@ -50,6 +49,17 @@ import pub.devrel.easypermissions.AfterPermissionGranted
  */
 object BusinessManager {
 
+    var NEED_AUTH = true
+
+    // 归还设备是否需要登录及角色验证
+    var CAN_RETURN = true
+        get() {
+            // TODO 临时注掉,方便调试
+//            val loginUser = SPUtils.getLoginUser(MyApplication.instance!!.applicationContext!!)
+//            return !(NEED_AUTH && (loginUser == null || loginUser.userId == 0L))
+            return true
+        }
+
     /**
      * 下发工作票还是读取工作票完成状态
      */
@@ -81,8 +91,7 @@ object BusinessManager {
             LogUtil.i("设备状态:${(res as List<ByteArray>).map { it.toHexStrings() }}")
             res.forEach { bytes ->
                 val dockBean = ModBusController.updateStatus(bytes) ?: return@forEach
-                val loginUser = SPUtils.getLoginUser(MyApplication.instance!!.applicationContext!!)
-                if (NEED_AUTH && (loginUser == null || loginUser.userId == 0L)) {
+                if (!CAN_RETURN) {
                     return@forEach
                 }
                 when (dockBean.type) {
@@ -114,6 +123,7 @@ object BusinessManager {
                                     ModBusController.updateLockRfid(dockBean.addr.toInt(), lockBean.idx, rfid)
                                     NetApi.getLockInfo(rfid) {
                                         if (it != null) {
+                                            // TODO 考虑快速拿取
                                             ModBusController.controlLockBuckle(false, dockBean.addr.toInt() - 1, lockBean.idx) { itRst ->
                                                 if (itRst.isNotEmpty()) {
                                                     // TODO 上报锁具信息

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

@@ -4,8 +4,6 @@ object Constants {
     const val PERMISSION_REQUEST_CODE = 1
     const val BLE_LOCAL_NAME = "keyLock"
 
-    const val NEED_AUTH = false  // 归还设备是否需要登录验证
-
     /**************************  角色  **************************/
     const val USER_ROLE_DRAWER = "jtdrawer"         // 作业管理员/开票人
     const val USER_ROLE_LOCKER = "jtlocker"         // 作业负责人/上锁人

+ 10 - 0
app/src/main/java/com/grkj/iscs/model/UrlConsts.kt

@@ -81,4 +81,14 @@ object UrlConsts {
      * 通过NFC编号获取锁详细信息
      */
     const val LOCK_INFO_BY_NFC = "/iscs/lock/selectIsLockByNfc"
+
+    /**
+     * 归还挂锁时更新数据
+     */
+    const val LOCK_RETURN_UPDATE = "/iscs/hardware-api/updateTicketLockReturn"
+
+    /**
+     * 取出挂锁时更新数据
+     */
+    const val LOCK_TAKE_UPDATE = "/iscs/hardware-api/updateTicketLockTake"
 }

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/vo/LockInfoRespVO.kt → app/src/main/java/com/grkj/iscs/model/vo/lock/LockInfoRespVO.kt

@@ -1,4 +1,4 @@
-package com.grkj.iscs.model.vo
+package com.grkj.iscs.model.vo.lock
 
 data class LockInfoRespVO(
     val lockId: Long?,

+ 7 - 0
app/src/main/java/com/grkj/iscs/model/vo/lock/LockTakeUpdateReqVO.kt

@@ -0,0 +1,7 @@
+package com.grkj.iscs.model.vo.lock
+
+data class LockTakeUpdateReqVO(
+    val ticketId: Long?,
+    val lockNfc: String?,
+    val fromHardwareId: Long?
+)

+ 42 - 1
app/src/main/java/com/grkj/iscs/util/NetApi.kt

@@ -1,12 +1,14 @@
 package com.grkj.iscs.util
 
 import com.grkj.iscs.MyApplication
+import com.grkj.iscs.model.Constants.NEED_AUTH
 import com.grkj.iscs.model.Token
 import com.grkj.iscs.model.UrlConsts
-import com.grkj.iscs.model.vo.LockInfoRespVO
+import com.grkj.iscs.model.vo.lock.LockInfoRespVO
 import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.model.vo.dept.DeptListRespVO
 import com.grkj.iscs.model.vo.key.KeyInfoRespVO
+import com.grkj.iscs.model.vo.lock.LockTakeUpdateReqVO
 import com.grkj.iscs.model.vo.sop.SopInfoRespVO
 import com.grkj.iscs.model.vo.sop.SopPageRespVO
 import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
@@ -283,4 +285,43 @@ object NetApi {
             }, isGet = true, isAuth = true
         )
     }
+
+    /**
+     * 归还挂锁时更新数据
+     */
+    fun updateLockReturn(lockNfc: String, toHardwareId: Long, callBack: (Boolean?) -> Unit) {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.LOCK_RETURN_UPDATE,
+            false,
+            mapOf(
+                "lockNfc" to lockNfc,
+                "toHardwareId" to toHardwareId
+            ),
+            { res, _, _ ->
+                res?.let {
+                    callBack.invoke(getRefBean(it))
+                }
+                // TODO isAuth需要配置
+            }, isGet = false, isAuth = NEED_AUTH
+        )
+    }
+
+    /**
+     * 取出挂锁时更新数据
+     */
+    fun updateLockTake(list: MutableList<LockTakeUpdateReqVO>, callBack: (Boolean?) -> Unit) {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.LOCK_TAKE_UPDATE,
+            false,
+            mapOf(
+                "list" to list
+            ),
+            { res, _, _ ->
+                res?.let {
+                    callBack.invoke(getRefBean(it))
+                }
+                // TODO isAuth需要配置
+            }, isGet = false,isAuth = NEED_AUTH
+        )
+    }
 }