|
@@ -6,6 +6,7 @@ import com.google.gson.Gson
|
|
|
import com.grkj.data.data.DictConstants
|
|
import com.grkj.data.data.DictConstants
|
|
|
import com.grkj.data.data.MainDomainData
|
|
import com.grkj.data.data.MainDomainData
|
|
|
import com.grkj.data.di.LogicManager
|
|
import com.grkj.data.di.LogicManager
|
|
|
|
|
+import com.grkj.data.di.LogicModule
|
|
|
import com.grkj.data.enums.HardwareMode
|
|
import com.grkj.data.enums.HardwareMode
|
|
|
import com.grkj.data.enums.JobTicketStatusEnum
|
|
import com.grkj.data.enums.JobTicketStatusEnum
|
|
|
import com.grkj.data.enums.RoleEnum
|
|
import com.grkj.data.enums.RoleEnum
|
|
@@ -376,44 +377,45 @@ object BleBusinessManager {
|
|
|
// 根据情况看是否需要下发工作票
|
|
// 根据情况看是否需要下发工作票
|
|
|
HardwareMode.getCurrentHardwareMode()
|
|
HardwareMode.getCurrentHardwareMode()
|
|
|
.getRfidByKeyMac(currentModeEvent.bleBean.bleDevice.mac)?.let { rfid ->
|
|
.getRfidByKeyMac(currentModeEvent.bleBean.bleDevice.mac)?.let { rfid ->
|
|
|
- // 判断是否有待取的钥匙
|
|
|
|
|
- val updateBo = HardwareBusinessManager.getWaitTakeDeviceByRfid(
|
|
|
|
|
- DeviceConst.DEVICE_TYPE_KEY, rfid
|
|
|
|
|
- )
|
|
|
|
|
- if (HardwareBusinessManager.hasAnyDeviceWaitTakeByTicketId(
|
|
|
|
|
- DeviceConst.DEVICE_TYPE_LOCK, updateBo?.ticketId
|
|
|
|
|
|
|
+ // 判断是否有待取的钥匙
|
|
|
|
|
+ val updateBo = HardwareBusinessManager.getWaitTakeDeviceByRfid(
|
|
|
|
|
+ DeviceConst.DEVICE_TYPE_KEY, rfid
|
|
|
)
|
|
)
|
|
|
- ) {
|
|
|
|
|
- logger.info("有钥匙待取但是对应的作业票的锁还有")
|
|
|
|
|
- //todo 如果有钥匙待取但是对应的作业票的锁还有的,就不发
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- updateBo?.let { itBO ->
|
|
|
|
|
- if (BleReturnDispatcher.isConnected(currentModeEvent.bleBean.bleDevice.mac)) {
|
|
|
|
|
- logger.info("当前钥匙在归还队列,断开连接")
|
|
|
|
|
- BleReturnDispatcher.scheduleDisconnect(currentModeEvent.bleBean.bleDevice.mac)
|
|
|
|
|
|
|
+ if (HardwareBusinessManager.hasAnyDeviceWaitTakeByTicketId(
|
|
|
|
|
+ DeviceConst.DEVICE_TYPE_LOCK, updateBo?.ticketId
|
|
|
|
|
+ )
|
|
|
|
|
+ ) {
|
|
|
|
|
+ logger.info("有钥匙待取但是对应的作业票的锁还有")
|
|
|
|
|
+ //todo 如果有钥匙待取但是对应的作业票的锁还有的,就不发
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
- if (BleSendDispatcher.isConnected(currentModeEvent.bleBean.bleDevice.mac)) {
|
|
|
|
|
- logger.info("当前钥匙已在发送队列连接")
|
|
|
|
|
- checkAndSendTicket(currentModeEvent, itBO)
|
|
|
|
|
- } else {
|
|
|
|
|
- logger.info("当前钥匙未加入发送队列,连接后发送")
|
|
|
|
|
- BleSendDispatcher.submit(currentModeEvent.bleBean.bleDevice.mac) {
|
|
|
|
|
|
|
+ updateBo?.let { itBO ->
|
|
|
|
|
+ if (BleReturnDispatcher.isConnected(currentModeEvent.bleBean.bleDevice.mac)) {
|
|
|
|
|
+ logger.info("当前钥匙在归还队列,断开连接")
|
|
|
|
|
+ BleReturnDispatcher.scheduleDisconnect(currentModeEvent.bleBean.bleDevice.mac)
|
|
|
|
|
+ }
|
|
|
|
|
+ if (BleSendDispatcher.isConnected(currentModeEvent.bleBean.bleDevice.mac)) {
|
|
|
|
|
+ logger.info("当前钥匙已在发送队列连接")
|
|
|
checkAndSendTicket(currentModeEvent, itBO)
|
|
checkAndSendTicket(currentModeEvent, itBO)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ logger.info("当前钥匙未加入发送队列,连接后发送")
|
|
|
|
|
+ BleSendDispatcher.submit(currentModeEvent.bleBean.bleDevice.mac) {
|
|
|
|
|
+ checkAndSendTicket(currentModeEvent, itBO)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } ?: let {
|
|
|
|
|
+ HardwareMode.getCurrentHardwareMode().updateKeyReadyStatus(
|
|
|
|
|
+ currentModeEvent.bleBean.bleDevice.mac, true, 4
|
|
|
|
|
+ )
|
|
|
|
|
+ HardwareMode.getCurrentHardwareMode()
|
|
|
|
|
+ .controlKeyBuckle(false, currentModeEvent.bleBean.bleDevice.mac)
|
|
|
|
|
+ LoadingEvent.sendLoadingEvent()
|
|
|
|
|
+ ThreadUtils.runOnIO {
|
|
|
|
|
+ BleReturnDispatcher.scheduleDisconnect(currentModeEvent.bleBean.bleDevice.mac)
|
|
|
|
|
+ DataBusiness.checkMyTodoForHandleKey(currentModeEvent.bleBean.bleDevice.mac)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} ?: let {
|
|
} ?: let {
|
|
|
- HardwareMode.getCurrentHardwareMode()
|
|
|
|
|
- .updateKeyReadyStatus(currentModeEvent.bleBean.bleDevice.mac, true, 4)
|
|
|
|
|
- HardwareMode.getCurrentHardwareMode()
|
|
|
|
|
- .controlKeyBuckle(false, currentModeEvent.bleBean.bleDevice.mac)
|
|
|
|
|
- LoadingEvent.sendLoadingEvent()
|
|
|
|
|
- ThreadUtils.runOnIO {
|
|
|
|
|
- BleReturnDispatcher.scheduleDisconnect(currentModeEvent.bleBean.bleDevice.mac)
|
|
|
|
|
- DataBusiness.checkMyTodoForHandleKey(currentModeEvent.bleBean.bleDevice.mac)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } ?: let {
|
|
|
|
|
HardwareMode.getCurrentHardwareMode()
|
|
HardwareMode.getCurrentHardwareMode()
|
|
|
.updateKeyReadyStatus(currentModeEvent.bleBean.bleDevice.mac, true, 4)
|
|
.updateKeyReadyStatus(currentModeEvent.bleBean.bleDevice.mac, true, 4)
|
|
|
HardwareMode.getCurrentHardwareMode()
|
|
HardwareMode.getCurrentHardwareMode()
|
|
@@ -464,8 +466,7 @@ object BleBusinessManager {
|
|
|
}
|
|
}
|
|
|
if (role == null) {
|
|
if (role == null) {
|
|
|
ThreadUtils.runOnMain {
|
|
ThreadUtils.runOnMain {
|
|
|
- PopTip.build()
|
|
|
|
|
- .tip(CommonUtils.getStr("you_are_not_locker_tip"))
|
|
|
|
|
|
|
+ PopTip.build().tip(CommonUtils.getStr("you_are_not_locker_tip"))
|
|
|
}
|
|
}
|
|
|
return@getTicketDetail
|
|
return@getTicketDetail
|
|
|
}
|
|
}
|
|
@@ -475,21 +476,14 @@ object BleBusinessManager {
|
|
|
currentModeEvent.bleBean.bleDevice.mac,
|
|
currentModeEvent.bleBean.bleDevice.mac,
|
|
|
ticketDetail,
|
|
ticketDetail,
|
|
|
ticketDetail.ticketLockVOList?.filter {
|
|
ticketDetail.ticketLockVOList?.filter {
|
|
|
- it.groupId == MainDomainData.deviceTakeTicketGroupBound[itBO.ticketId] &&
|
|
|
|
|
- ticketDetail.ticketPointsVOList?.filter { it.groupId == MainDomainData.deviceTakeTicketGroupBound[itBO.ticketId] }
|
|
|
|
|
- ?.mapNotNull { it.lockId }
|
|
|
|
|
- ?.contains(it.lockId) != true
|
|
|
|
|
- }
|
|
|
|
|
- ?.map { it.lockNfc }?.toMutableList(),
|
|
|
|
|
|
|
+ it.groupId == MainDomainData.deviceTakeTicketGroupBound[itBO.ticketId] && ticketDetail.ticketPointsVOList?.filter { it.groupId == MainDomainData.deviceTakeTicketGroupBound[itBO.ticketId] }
|
|
|
|
|
+ ?.mapNotNull { it.lockId }?.contains(it.lockId) != true
|
|
|
|
|
+ }?.map { it.lockNfc }?.toMutableList(),
|
|
|
true
|
|
true
|
|
|
)
|
|
)
|
|
|
} else if (step?.enableUnlock == true) { // 解锁工作票
|
|
} else if (step?.enableUnlock == true) { // 解锁工作票
|
|
|
sendTicketBusiness(
|
|
sendTicketBusiness(
|
|
|
- false,
|
|
|
|
|
- currentModeEvent.bleBean.bleDevice.mac,
|
|
|
|
|
- ticketDetail,
|
|
|
|
|
- null,
|
|
|
|
|
- true
|
|
|
|
|
|
|
+ false, currentModeEvent.bleBean.bleDevice.mac, ticketDetail, null, true
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -659,9 +653,7 @@ object BleBusinessManager {
|
|
|
SPUtils.returnKey(ticketId)
|
|
SPUtils.returnKey(ticketId)
|
|
|
// 上报钥匙归还
|
|
// 上报钥匙归还
|
|
|
LogicManager.jobTicketLogic.updateKeyTake(
|
|
LogicManager.jobTicketLogic.updateKeyTake(
|
|
|
- ticketId,
|
|
|
|
|
- "virtualKey",
|
|
|
|
|
- SIKCore.getApplication().serialNo(), true
|
|
|
|
|
|
|
+ ticketId, "virtualKey", SIKCore.getApplication().serialNo(), true
|
|
|
) {
|
|
) {
|
|
|
logger.info("虚拟钥匙取出:${it}")
|
|
logger.info("虚拟钥匙取出:${it}")
|
|
|
LogicManager.jobTicketLogic.updateKeyReturn(
|
|
LogicManager.jobTicketLogic.updateKeyReturn(
|
|
@@ -669,27 +661,22 @@ object BleBusinessManager {
|
|
|
) { isSuccess, msg, code ->
|
|
) { isSuccess, msg, code ->
|
|
|
logger.info("虚拟钥匙归还:${isSuccess},${msg},${code}")
|
|
logger.info("虚拟钥匙归还:${isSuccess},${msg},${code}")
|
|
|
//更新作业票的状态
|
|
//更新作业票的状态
|
|
|
- val jobTicketData =
|
|
|
|
|
- LogicManager.jobTicketLogic.getTicketDataByTicketId(ticketId)
|
|
|
|
|
|
|
+ val jobTicketData = LogicManager.jobTicketLogic.getTicketDataByTicketId(ticketId)
|
|
|
if (jobTicketData == null) {
|
|
if (jobTicketData == null) {
|
|
|
TicketFinishedEvent.sendTicketFinishedEvent(ticketId)
|
|
TicketFinishedEvent.sendTicketFinishedEvent(ticketId)
|
|
|
PopTip.build().tip(CommonUtils.getStr("key_return_success"))
|
|
PopTip.build().tip(CommonUtils.getStr("key_return_success"))
|
|
|
return@updateKeyReturn
|
|
return@updateKeyReturn
|
|
|
}
|
|
}
|
|
|
- val ticketStepDataVo =
|
|
|
|
|
- LogicManager.jobTicketLogic.getJobTicketStepDataByTicketId(
|
|
|
|
|
- jobTicketData.ticketId
|
|
|
|
|
- ).firstOrNull { it.stepStatus == "0" }
|
|
|
|
|
- val workflowSteps =
|
|
|
|
|
- LogicManager.workflowLogic.getStepsByMode(
|
|
|
|
|
- jobTicketData.modeId!!
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ val ticketStepDataVo = LogicManager.jobTicketLogic.getJobTicketStepDataByTicketId(
|
|
|
|
|
+ jobTicketData.ticketId
|
|
|
|
|
+ ).firstOrNull { it.stepStatus == "0" }
|
|
|
|
|
+ val workflowSteps = LogicManager.workflowLogic.getStepsByMode(
|
|
|
|
|
+ jobTicketData.modeId!!
|
|
|
|
|
+ )
|
|
|
var currentWorkflowStep = ticketStepDataVo
|
|
var currentWorkflowStep = ticketStepDataVo
|
|
|
val ticketPoints =
|
|
val ticketPoints =
|
|
|
LogicManager.jobTicketLogic.getTicketDetail(jobTicketData.ticketId)?.ticketPointsVOList
|
|
LogicManager.jobTicketLogic.getTicketDetail(jobTicketData.ticketId)?.ticketPointsVOList
|
|
|
- if (currentWorkflowStep?.enableReleaseColock == true && currentWorkflowStep.enableUnlock ||
|
|
|
|
|
- ticketPoints?.all { it.pointStatus == ticketPoints.firstOrNull()?.pointStatus } == false
|
|
|
|
|
- ) {
|
|
|
|
|
|
|
+ if (currentWorkflowStep?.enableReleaseColock == true && currentWorkflowStep.enableUnlock || ticketPoints?.all { it.pointStatus == ticketPoints.firstOrNull()?.pointStatus } == false) {
|
|
|
logger.info("当前解锁和解除共锁在同一步骤或者没有全部点位解锁,不更新步骤状态")
|
|
logger.info("当前解锁和解除共锁在同一步骤或者没有全部点位解锁,不更新步骤状态")
|
|
|
} else {
|
|
} else {
|
|
|
ticketStepDataVo?.stepStatus = "1"
|
|
ticketStepDataVo?.stepStatus = "1"
|
|
@@ -702,10 +689,9 @@ object BleBusinessManager {
|
|
|
logger.info("更新步骤:${it}")
|
|
logger.info("更新步骤:${it}")
|
|
|
LogicManager.jobTicketLogic.updateTicketStepData(it)
|
|
LogicManager.jobTicketLogic.updateTicketStepData(it)
|
|
|
}
|
|
}
|
|
|
- val ticketStep =
|
|
|
|
|
- LogicManager.jobTicketLogic.getJobTicketStepDataByTicketId(
|
|
|
|
|
- jobTicketData.ticketId
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ val ticketStep = LogicManager.jobTicketLogic.getJobTicketStepDataByTicketId(
|
|
|
|
|
+ jobTicketData.ticketId
|
|
|
|
|
+ )
|
|
|
currentWorkflowStep = ticketStep.firstOrNull { it.stepStatus == "0" }
|
|
currentWorkflowStep = ticketStep.firstOrNull { it.stepStatus == "0" }
|
|
|
LogicManager.jobTicketLogic.updateTicketDataStatus(
|
|
LogicManager.jobTicketLogic.updateTicketDataStatus(
|
|
|
ticketId,
|
|
ticketId,
|
|
@@ -756,16 +742,12 @@ object BleBusinessManager {
|
|
|
val ticketId = data.taskCode?.toLong()
|
|
val ticketId = data.taskCode?.toLong()
|
|
|
val pointId =
|
|
val pointId =
|
|
|
LogicManager.hardwareLogic.getPointIdByPointNfc(data.dataList?.first()?.equipRfidNo)
|
|
LogicManager.hardwareLogic.getPointIdByPointNfc(data.dataList?.first()?.equipRfidNo)
|
|
|
- val groupId =
|
|
|
|
|
- LogicManager.jobTicketLogic.getGroupIdByPointIdAndTicketId(
|
|
|
|
|
- pointId,
|
|
|
|
|
- data.taskCode?.toLong()!!
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ val groupId = LogicManager.jobTicketLogic.getGroupIdByPointIdAndTicketId(
|
|
|
|
|
+ pointId, data.taskCode?.toLong()!!
|
|
|
|
|
+ )
|
|
|
// 上报点位钥匙绑定
|
|
// 上报点位钥匙绑定
|
|
|
LogicManager.jobTicketLogic.updateLockPointBatch(
|
|
LogicManager.jobTicketLogic.updateLockPointBatch(
|
|
|
- updateList,
|
|
|
|
|
- ticketId,
|
|
|
|
|
- groupId
|
|
|
|
|
|
|
+ updateList, ticketId, groupId
|
|
|
) { isSuccess, msg, code ->
|
|
) { isSuccess, msg, code ->
|
|
|
logger.info("还锁操作:${isSuccess},${msg},${code}")
|
|
logger.info("还锁操作:${isSuccess},${msg},${code}")
|
|
|
if (isSuccess) {
|
|
if (isSuccess) {
|
|
@@ -806,15 +788,13 @@ object BleBusinessManager {
|
|
|
LogicManager.jobTicketLogic.getJobTicketStepDataByTicketId(
|
|
LogicManager.jobTicketLogic.getJobTicketStepDataByTicketId(
|
|
|
jobTicketData.ticketId
|
|
jobTicketData.ticketId
|
|
|
).firstOrNull { it.stepStatus == "0" }
|
|
).firstOrNull { it.stepStatus == "0" }
|
|
|
- val workflowSteps =
|
|
|
|
|
- LogicManager.workflowLogic.getStepsByMode(
|
|
|
|
|
- jobTicketData.modeId!!
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ val workflowSteps = LogicManager.workflowLogic.getStepsByMode(
|
|
|
|
|
+ jobTicketData.modeId!!
|
|
|
|
|
+ )
|
|
|
val ticketPoints =
|
|
val ticketPoints =
|
|
|
LogicManager.jobTicketLogic.getTicketDetail(data.taskCode?.toLong()!!)?.ticketPointsVOList
|
|
LogicManager.jobTicketLogic.getTicketDetail(data.taskCode?.toLong()!!)?.ticketPointsVOList
|
|
|
var currentWorkflowStep = ticketStepDataVo
|
|
var currentWorkflowStep = ticketStepDataVo
|
|
|
- if ((currentWorkflowStep?.enableLock == true && currentWorkflowStep.enableColock) || (currentWorkflowStep?.enableReleaseColock == true && currentWorkflowStep.enableUnlock || ticketPoints?.all { it.pointStatus == ticketPoints.firstOrNull()?.pointStatus } == false)
|
|
|
|
|
- ) {
|
|
|
|
|
|
|
+ if ((currentWorkflowStep?.enableLock == true && currentWorkflowStep.enableColock) || (currentWorkflowStep?.enableReleaseColock == true && currentWorkflowStep.enableUnlock || ticketPoints?.all { it.pointStatus == ticketPoints.firstOrNull()?.pointStatus } == false)) {
|
|
|
logger.info("当前上锁和共锁或者解锁和解除共锁在同一步骤,或者所有点位的状态不统一,不更新步骤状态")
|
|
logger.info("当前上锁和共锁或者解锁和解除共锁在同一步骤,或者所有点位的状态不统一,不更新步骤状态")
|
|
|
} else {
|
|
} else {
|
|
|
ticketStepDataVo?.stepStatus = "1"
|
|
ticketStepDataVo?.stepStatus = "1"
|
|
@@ -915,12 +895,9 @@ object BleBusinessManager {
|
|
|
mac,
|
|
mac,
|
|
|
ticketDetail,
|
|
ticketDetail,
|
|
|
ticketDetail.ticketLockVOList?.filter {
|
|
ticketDetail.ticketLockVOList?.filter {
|
|
|
- it.groupId == MainDomainData.deviceTakeTicketGroupBound[it.ticketId] &&
|
|
|
|
|
- ticketDetail.ticketPointsVOList?.filter { it.groupId == MainDomainData.deviceTakeTicketGroupBound[it.ticketId] }
|
|
|
|
|
- ?.mapNotNull { it.lockId }
|
|
|
|
|
- ?.contains(it.lockId) != true
|
|
|
|
|
- }
|
|
|
|
|
- ?.map { it.lockNfc }?.toMutableList(),
|
|
|
|
|
|
|
+ it.groupId == MainDomainData.deviceTakeTicketGroupBound[it.ticketId] && ticketDetail.ticketPointsVOList?.filter { it.groupId == MainDomainData.deviceTakeTicketGroupBound[it.ticketId] }
|
|
|
|
|
+ ?.mapNotNull { it.lockId }?.contains(it.lockId) != true
|
|
|
|
|
+ }?.map { it.lockNfc }?.toMutableList(),
|
|
|
true
|
|
true
|
|
|
)
|
|
)
|
|
|
} else if (step?.enableUnlock == true) { // 解锁工作票
|
|
} else if (step?.enableUnlock == true) { // 解锁工作票
|
|
@@ -938,69 +915,64 @@ object BleBusinessManager {
|
|
|
@SuppressLint("MissingPermission")
|
|
@SuppressLint("MissingPermission")
|
|
|
fun handleGiveKey(deviceTakeUpdateBO: DeviceTakeUpdate) {
|
|
fun handleGiveKey(deviceTakeUpdateBO: DeviceTakeUpdate) {
|
|
|
val mac = HardwareMode.getCurrentHardwareMode().getKeyMacByRfid(deviceTakeUpdateBO.nfc)
|
|
val mac = HardwareMode.getCurrentHardwareMode().getKeyMacByRfid(deviceTakeUpdateBO.nfc)
|
|
|
- logger.info("取完锁开始发钥匙2:${BleConnectionManager.deviceList.toJson()}")
|
|
|
|
|
|
|
+ ?: LogicManager.hardwareLogic.getKeyInfo(deviceTakeUpdateBO.nfc)?.macAddress
|
|
|
|
|
+ logger.info("取完锁开始发钥匙2:${BleConnectionManager.deviceList.toJson()},${mac}")
|
|
|
mac?.let {
|
|
mac?.let {
|
|
|
- if (BleSendDispatcher.isConnected(it)) {
|
|
|
|
|
- BleSendDispatcher.submit(it) {
|
|
|
|
|
- BleConnectionManager.getBleDeviceByMac(
|
|
|
|
|
- HardwareMode.getCurrentHardwareMode()
|
|
|
|
|
- .getKeyMacByRfid(deviceTakeUpdateBO.nfc)
|
|
|
|
|
- )
|
|
|
|
|
- ?.let {
|
|
|
|
|
- BleConnectionManager.getCurrentStatus(
|
|
|
|
|
- 2, BleConnectionManager.getBleDeviceByMac(
|
|
|
|
|
- HardwareMode.getCurrentHardwareMode()
|
|
|
|
|
- .getKeyMacByRfid(deviceTakeUpdateBO.nfc)
|
|
|
|
|
- )!!.bleDevice
|
|
|
|
|
- ) {
|
|
|
|
|
- if (!it) {
|
|
|
|
|
- return@getCurrentStatus
|
|
|
|
|
- }
|
|
|
|
|
- logger.warn("handleGiveKey timeout")
|
|
|
|
|
- HardwareBusinessManager.removeDeviceTake(
|
|
|
|
|
- DeviceConst.DEVICE_TYPE_KEY, deviceTakeUpdateBO.nfc
|
|
|
|
|
- )
|
|
|
|
|
- HardwareBusinessManager.checkEquipCount(
|
|
|
|
|
- deviceTakeUpdateBO.ticketId,
|
|
|
|
|
- 0,
|
|
|
|
|
- true
|
|
|
|
|
- ) { keyPair, lockMap ->
|
|
|
|
|
- if (keyPair == null) {
|
|
|
|
|
- TipDialog.show(
|
|
|
|
|
- msg = CommonUtils.getStr("key_take_error_tip")
|
|
|
|
|
- .toString(),
|
|
|
|
|
- onConfirmClick = {
|
|
|
|
|
- DeviceExceptionEvent.sendDeviceExceptionEvent(
|
|
|
|
|
- DeviceConst.DEVICE_TYPE_KEY,
|
|
|
|
|
- deviceTakeUpdateBO.nfc
|
|
|
|
|
- )
|
|
|
|
|
- })
|
|
|
|
|
- } else {
|
|
|
|
|
- HardwareBusinessManager.addDeviceTake(
|
|
|
|
|
|
|
+ BleSendDispatcher.submit(it) {
|
|
|
|
|
+ BleConnectionManager.getBleDeviceByMac(
|
|
|
|
|
+ HardwareMode.getCurrentHardwareMode()
|
|
|
|
|
+ .getKeyMacByRfid(deviceTakeUpdateBO.nfc)
|
|
|
|
|
+ )?.let {
|
|
|
|
|
+ BleConnectionManager.getCurrentStatus(
|
|
|
|
|
+ 2, BleConnectionManager.getBleDeviceByMac(
|
|
|
|
|
+ HardwareMode.getCurrentHardwareMode()
|
|
|
|
|
+ .getKeyMacByRfid(deviceTakeUpdateBO.nfc)
|
|
|
|
|
+ )!!.bleDevice
|
|
|
|
|
+ ) {
|
|
|
|
|
+ if (!it) {
|
|
|
|
|
+ return@getCurrentStatus
|
|
|
|
|
+ }
|
|
|
|
|
+ logger.warn("handleGiveKey timeout")
|
|
|
|
|
+ HardwareBusinessManager.removeDeviceTake(
|
|
|
|
|
+ DeviceConst.DEVICE_TYPE_KEY, deviceTakeUpdateBO.nfc
|
|
|
|
|
+ )
|
|
|
|
|
+ HardwareBusinessManager.checkEquipCount(
|
|
|
|
|
+ deviceTakeUpdateBO.ticketId, 0, true
|
|
|
|
|
+ ) { keyPair, lockMap ->
|
|
|
|
|
+ if (keyPair == null) {
|
|
|
|
|
+ TipDialog.show(
|
|
|
|
|
+ msg = CommonUtils.getStr("key_take_error_tip")
|
|
|
|
|
+ .toString(), onConfirmClick = {
|
|
|
|
|
+ DeviceExceptionEvent.sendDeviceExceptionEvent(
|
|
|
DeviceConst.DEVICE_TYPE_KEY,
|
|
DeviceConst.DEVICE_TYPE_KEY,
|
|
|
- deviceTakeUpdateBO.ticketId,
|
|
|
|
|
- keyPair.second
|
|
|
|
|
- )
|
|
|
|
|
- handleGiveKey(
|
|
|
|
|
- DeviceTakeUpdate(
|
|
|
|
|
- DeviceConst.DEVICE_TYPE_KEY,
|
|
|
|
|
- deviceTakeUpdateBO.ticketId,
|
|
|
|
|
- keyPair.second ?: ""
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ deviceTakeUpdateBO.nfc
|
|
|
)
|
|
)
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } ?: run {
|
|
|
|
|
- logger.info("根据钥匙的rfid没找到钥匙")
|
|
|
|
|
- TipDialog.show(
|
|
|
|
|
- msg = CommonUtils.getStr("key_take_error_tip").toString(),
|
|
|
|
|
- onConfirmClick = {
|
|
|
|
|
- DeviceExceptionEvent.sendDeviceExceptionEvent(
|
|
|
|
|
- DeviceConst.DEVICE_TYPE_KEY, deviceTakeUpdateBO.nfc
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ HardwareBusinessManager.addDeviceTake(
|
|
|
|
|
+ DeviceConst.DEVICE_TYPE_KEY,
|
|
|
|
|
+ deviceTakeUpdateBO.ticketId,
|
|
|
|
|
+ keyPair.second
|
|
|
|
|
+ )
|
|
|
|
|
+ handleGiveKey(
|
|
|
|
|
+ DeviceTakeUpdate(
|
|
|
|
|
+ DeviceConst.DEVICE_TYPE_KEY,
|
|
|
|
|
+ deviceTakeUpdateBO.ticketId,
|
|
|
|
|
+ keyPair.second ?: ""
|
|
|
|
|
+ )
|
|
|
)
|
|
)
|
|
|
- })
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ } ?: run {
|
|
|
|
|
+ logger.info("根据钥匙的rfid没找到钥匙")
|
|
|
|
|
+ TipDialog.show(
|
|
|
|
|
+ msg = CommonUtils.getStr("key_take_error_tip").toString(),
|
|
|
|
|
+ onConfirmClick = {
|
|
|
|
|
+ DeviceExceptionEvent.sendDeviceExceptionEvent(
|
|
|
|
|
+ DeviceConst.DEVICE_TYPE_KEY, deviceTakeUpdateBO.nfc
|
|
|
|
|
+ )
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1035,16 +1007,13 @@ object BleBusinessManager {
|
|
|
"abnormal"
|
|
"abnormal"
|
|
|
)
|
|
)
|
|
|
}?.dictValue
|
|
}?.dictValue
|
|
|
- }?.toMutableList() ?: mutableListOf(),
|
|
|
|
|
- (keyPage?.records?.filter {
|
|
|
|
|
|
|
+ }?.toMutableList() ?: mutableListOf(), (keyPage?.records?.filter {
|
|
|
it.exStatus == keyStatusList.find { d ->
|
|
it.exStatus == keyStatusList.find { d ->
|
|
|
I18nManager.t(
|
|
I18nManager.t(
|
|
|
d.dictLabel
|
|
d.dictLabel
|
|
|
) == I18nManager.t("abnormal")
|
|
) == I18nManager.t("abnormal")
|
|
|
}?.dictValue
|
|
}?.dictValue
|
|
|
- }
|
|
|
|
|
- ?.map { it.keyNfc ?: "" }?.toMutableList() ?: mutableListOf()),
|
|
|
|
|
- exceptKeyMac
|
|
|
|
|
|
|
+ }?.map { it.keyNfc ?: "" }?.toMutableList() ?: mutableListOf()), exceptKeyMac
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|