|
@@ -58,6 +58,7 @@ import com.grkj.iscs.util.SPUtils
|
|
|
import com.grkj.iscs.util.ToastUtils
|
|
import com.grkj.iscs.util.ToastUtils
|
|
|
import com.grkj.iscs.util.log.LogUtil
|
|
import com.grkj.iscs.util.log.LogUtil
|
|
|
import com.grkj.iscs.view.base.BaseActivity
|
|
import com.grkj.iscs.view.base.BaseActivity
|
|
|
|
|
+import com.grkj.iscs.view.dialog.TipDialog
|
|
|
import pub.devrel.easypermissions.AfterPermissionGranted
|
|
import pub.devrel.easypermissions.AfterPermissionGranted
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -361,14 +362,17 @@ object BusinessManager {
|
|
|
/**
|
|
/**
|
|
|
* 钥匙归还提示确认弹框
|
|
* 钥匙归还提示确认弹框
|
|
|
*/
|
|
*/
|
|
|
- private fun showKeyReturnDialog(mac: String, isLeft: Boolean, slaveAddress: Byte) {
|
|
|
|
|
-// val dlg = TipDialog(MyApplication.instance!!.applicationContext)
|
|
|
|
|
-// dlg.setTip(MyApplication.instance!!.getString(R.string.key_return_tip))
|
|
|
|
|
-// dlg.setType(TipDialog.TYPE_CONFIRM)
|
|
|
|
|
-// dlg.setConfirmListener {
|
|
|
|
|
-// ModBusController.controlKeyBuckle(false, isLeft, slaveAddress)
|
|
|
|
|
-// getTicketStatusBusiness(mac, true)
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ private fun showKeyReturnDialog(onConfirm: () -> Unit, onCancel: () -> Unit) {
|
|
|
|
|
+ val ctx = ActivityUtils.currentActivity() as BaseActivity<*>
|
|
|
|
|
+ val dlg = TipDialog(ctx)
|
|
|
|
|
+ dlg.setTip(ctx.getString(R.string.key_return_tip))
|
|
|
|
|
+ dlg.setConfirmListener {
|
|
|
|
|
+ onConfirm.invoke()
|
|
|
|
|
+ }
|
|
|
|
|
+ dlg.setCancelListener {
|
|
|
|
|
+ onCancel.invoke()
|
|
|
|
|
+ }
|
|
|
|
|
+ dlg.show()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
fun readLockBuckleStatus() {
|
|
fun readLockBuckleStatus() {
|
|
@@ -563,12 +567,12 @@ object BusinessManager {
|
|
|
) {
|
|
) {
|
|
|
Executor.runOnMain {
|
|
Executor.runOnMain {
|
|
|
// 如果是已经连上的设备,从indicate开始往下走,不需要再扫描了
|
|
// 如果是已经连上的设备,从indicate开始往下走,不需要再扫描了
|
|
|
- if (BleManager.getInstance().isConnected(mac)) {
|
|
|
|
|
- deviceList.find { it.bleDevice.mac == mac }?.let { itBleDevice ->
|
|
|
|
|
- indicate(itBleDevice, isNeedLoading, prepareDoneCallBack)
|
|
|
|
|
- return@runOnMain
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+// if (BleManager.getInstance().isConnected(mac)) {
|
|
|
|
|
+// deviceList.find { it.bleDevice.mac == mac }?.let { itBleDevice ->
|
|
|
|
|
+// indicate(itBleDevice, isNeedLoading, prepareDoneCallBack)
|
|
|
|
|
+// return@runOnMain
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
CommonUtils.checkBlePermission(activity) {
|
|
CommonUtils.checkBlePermission(activity) {
|
|
|
doScanBle(mac, isNeedLoading, prepareDoneCallBack)
|
|
doScanBle(mac, isNeedLoading, prepareDoneCallBack)
|
|
|
}
|
|
}
|
|
@@ -1047,42 +1051,56 @@ object BusinessManager {
|
|
|
LogUtil.i("Get ticket status complete : ${bleDevice.mac}")
|
|
LogUtil.i("Get ticket status complete : ${bleDevice.mac}")
|
|
|
// TD:Ticket Done
|
|
// TD:Ticket Done
|
|
|
if (isNeedLoading) mEventBus.postValue(MsgEvent(MSG_EVENT_LOADING, LoadingMsg(false, "TD$ticketJson}", true)))
|
|
if (isNeedLoading) mEventBus.postValue(MsgEvent(MSG_EVENT_LOADING, LoadingMsg(false, "TD$ticketJson}", true)))
|
|
|
- // TODO 根据工作票完成情况,切换为待机模式
|
|
|
|
|
- switchReadyMode(bleDevice)
|
|
|
|
|
-
|
|
|
|
|
- // TODO 和confirm dialog冲突,待定
|
|
|
|
|
- val dock = ModBusController.getDockByKeyMac(bleDevice.mac)
|
|
|
|
|
- val keyBean = dock?.getKeyList()?.find { it.mac == bleDevice.mac }
|
|
|
|
|
- keyBean?.let {
|
|
|
|
|
- ModBusController.controlKeyBuckle(false, keyBean.isLeft, dock.addr)
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- // 上报隔离点状态
|
|
|
|
|
val workTicketGetBO = Gson().fromJson(ticketJson, WorkTicketGetBO::class.java)
|
|
val workTicketGetBO = Gson().fromJson(ticketJson, WorkTicketGetBO::class.java)
|
|
|
- val keyNfc = ModBusController.getKeyByMac(bleDevice.mac)?.rfid
|
|
|
|
|
- workTicketGetBO?.data?.forEach { data ->
|
|
|
|
|
- val updateList = mutableListOf<LockPointUpdateReqVO>()
|
|
|
|
|
- data.dataList?.forEach { dataListDTO ->
|
|
|
|
|
- val updateVO = LockPointUpdateReqVO(
|
|
|
|
|
- data.taskCode?.toLong(),
|
|
|
|
|
- dataListDTO.infoRfidNo,
|
|
|
|
|
- dataListDTO.equipRfidNo,
|
|
|
|
|
- keyNfc!!,
|
|
|
|
|
- dataListDTO.target,
|
|
|
|
|
- dataListDTO.status
|
|
|
|
|
- )
|
|
|
|
|
- updateList.add(updateVO)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 判断workTicketGetBO里是否有未完成的
|
|
|
|
|
+ if (workTicketGetBO.hasFinished()) {
|
|
|
|
|
+ handleKeyReturn(bleDevice, workTicketGetBO)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ showKeyReturnDialog({
|
|
|
|
|
+ handleKeyReturn(bleDevice, workTicketGetBO)
|
|
|
|
|
+ }) {
|
|
|
|
|
+ BleManager.getInstance().disconnect(bleDevice)
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 上报点位钥匙绑定
|
|
|
|
|
- NetApi.updateLockPointBatch(updateList) { isSuccess ->
|
|
|
|
|
|
|
+ private fun handleKeyReturn(bleDevice: BleDevice, workTicketGetBO: WorkTicketGetBO?) {
|
|
|
|
|
+ // 确认归还,切换为待机模式
|
|
|
|
|
+ switchReadyMode(bleDevice)
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ val dock = ModBusController.getDockByKeyMac(bleDevice.mac)
|
|
|
|
|
+ val keyBean = dock?.getKeyList()?.find { it.mac == bleDevice.mac }
|
|
|
|
|
+ keyBean?.let {
|
|
|
|
|
+ ModBusController.controlKeyBuckle(false, keyBean.isLeft, dock.addr)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 上报隔离点状态
|
|
|
|
|
+ val keyNfc = ModBusController.getKeyByMac(bleDevice.mac)?.rfid
|
|
|
|
|
+ workTicketGetBO?.data?.forEach { data ->
|
|
|
|
|
+ val updateList = mutableListOf<LockPointUpdateReqVO>()
|
|
|
|
|
+ data.dataList?.forEach { dataListDTO ->
|
|
|
|
|
+ val updateVO = LockPointUpdateReqVO(
|
|
|
|
|
+ data.taskCode?.toLong(),
|
|
|
|
|
+ dataListDTO.infoRfidNo,
|
|
|
|
|
+ dataListDTO.equipRfidNo,
|
|
|
|
|
+ keyNfc!!,
|
|
|
|
|
+ dataListDTO.target,
|
|
|
|
|
+ dataListDTO.status
|
|
|
|
|
+ )
|
|
|
|
|
+ updateList.add(updateVO)
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 上报钥匙归还
|
|
|
|
|
- NetApi.updateKeyReturn(data.taskCode?.toLong()!!, keyNfc!!, MyApplication.instance!!.serialNo()) { isSuccess ->
|
|
|
|
|
|
|
+ // 上报点位钥匙绑定
|
|
|
|
|
+ NetApi.updateLockPointBatch(updateList) { isSuccess ->
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 上报钥匙归还
|
|
|
|
|
+ NetApi.updateKeyReturn(data.taskCode?.toLong()!!, keyNfc!!, MyApplication.instance!!.serialNo()) { isSuccess ->
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|