|
|
@@ -1,40 +1,33 @@
|
|
|
package com.grkj.iscs.presentation.simple
|
|
|
|
|
|
-import android.content.Intent
|
|
|
+import android.view.InputDevice
|
|
|
+import android.view.KeyEvent
|
|
|
import android.view.View
|
|
|
import com.google.gson.Gson
|
|
|
import com.grkj.iscs.BusinessManager
|
|
|
import com.grkj.iscs.R
|
|
|
import com.grkj.iscs.base.BaseActivity
|
|
|
import com.grkj.iscs.databinding.ActivitySimpleProcessBinding
|
|
|
-import com.grkj.iscs.extentions.removeLeadingZeros
|
|
|
+import com.grkj.iscs.extentions.toByteArrays
|
|
|
import com.grkj.iscs.extentions.toHexStrings
|
|
|
import com.grkj.iscs.modbus.DockBean
|
|
|
import com.grkj.iscs.modbus.ModBusController
|
|
|
-import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_CARD
|
|
|
-import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_KEY
|
|
|
-import com.grkj.iscs.model.DeviceConst.DEVICE_TYPE_LOCK
|
|
|
import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_KEY
|
|
|
import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
|
|
|
-import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
|
|
|
import com.grkj.iscs.model.WorkTicketStatusBean
|
|
|
-import com.grkj.iscs.presentation.LockerActivity
|
|
|
-import com.grkj.iscs.presentation.LockerTogetherActivity
|
|
|
import com.grkj.iscs.presentation.PresentationManager
|
|
|
-import com.grkj.iscs.util.ActivityUtils
|
|
|
import com.grkj.iscs.util.Executor
|
|
|
import com.grkj.iscs.util.ToastUtils
|
|
|
|
|
|
class SimpleProcessActivity : BaseActivity<ActivitySimpleProcessBinding>() {
|
|
|
|
|
|
private lateinit var mStepList: MutableList<View>
|
|
|
+ private var cardNo: String = ""
|
|
|
|
|
|
override val viewBinding: ActivitySimpleProcessBinding
|
|
|
get() = ActivitySimpleProcessBinding.inflate(layoutInflater)
|
|
|
|
|
|
override fun initView() {
|
|
|
- reg()
|
|
|
-
|
|
|
mStepList = mutableListOf(mBinding!!.rlContainer0, mBinding!!.rlContainer1,
|
|
|
mBinding!!.rlContainer2, mBinding!!.rlContainer3, mBinding!!.rlContainer4, mBinding!!.rlContainer5)
|
|
|
|
|
|
@@ -51,13 +44,24 @@ class SimpleProcessActivity : BaseActivity<ActivitySimpleProcessBinding>() {
|
|
|
|
|
|
|
|
|
mBinding?.tvStart?.setOnClickListener {
|
|
|
- PresentationManager.mStep = 1
|
|
|
PresentationManager.initTicket()
|
|
|
+ PresentationManager.mStep = 1
|
|
|
+ PresentationManager.mSimpleTicket?.status = 1
|
|
|
changeStep(PresentationManager.mStep)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ override fun onResume() {
|
|
|
+ super.onResume()
|
|
|
+ reg()
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onStop() {
|
|
|
+ super.onStop()
|
|
|
+ ModBusController.unregisterListener(this)
|
|
|
+ }
|
|
|
|
|
|
- private fun changeStep(step: Int) {
|
|
|
+ fun changeStep(step: Int) {
|
|
|
for (i in mStepList.indices) {
|
|
|
if (i == step) {
|
|
|
mStepList[i].visibility = View.VISIBLE
|
|
|
@@ -74,13 +78,23 @@ class SimpleProcessActivity : BaseActivity<ActivitySimpleProcessBinding>() {
|
|
|
when (dockBean.type) {
|
|
|
DOCK_TYPE_KEY -> {
|
|
|
dockBean.deviceList.forEach { keyBean ->
|
|
|
- Executor.runOnMain {
|
|
|
- BusinessManager.getTicketStatusBusiness((keyBean as DockBean.KeyBean).mac!!, this) { b, s ->
|
|
|
- handleLoading(b, s)
|
|
|
- if (!s.isNullOrEmpty() && s.startsWith("工作票完成接收")) {
|
|
|
- val ticket = s.substring(7)
|
|
|
- val ticketStatusBean = Gson().fromJson(ticket, WorkTicketStatusBean::class.java)
|
|
|
- PresentationManager.updateWorkTicket(ticketStatusBean)
|
|
|
+ if (keyBean.isExist) {
|
|
|
+ Executor.runOnMain {
|
|
|
+ BusinessManager.getTicketStatusBusiness((keyBean as DockBean.KeyBean).mac!!, this) { b, s, rst ->
|
|
|
+ handleLoading(b, s)
|
|
|
+ if (!s.isNullOrEmpty() && rst == true) {
|
|
|
+ val ticket = s.substring(2)
|
|
|
+ val ticketStatusBean = Gson().fromJson(ticket, WorkTicketStatusBean::class.java)
|
|
|
+ PresentationManager.updateSimpleTicket(ticketStatusBean)
|
|
|
+ // TODO 更新mStep
|
|
|
+ if (PresentationManager.mSimpleTicket!!.status!! < 3) {
|
|
|
+ PresentationManager.mSimpleTicket?.status = 2
|
|
|
+ PresentationManager.updateStep(3)
|
|
|
+ } else {
|
|
|
+ PresentationManager.mSimpleTicket?.status = 4
|
|
|
+ PresentationManager.updateStep(5)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -89,9 +103,8 @@ class SimpleProcessActivity : BaseActivity<ActivitySimpleProcessBinding>() {
|
|
|
DOCK_TYPE_LOCK -> {
|
|
|
dockBean.deviceList.forEach { lockBean ->
|
|
|
if (lockBean.isExist) {
|
|
|
- ModBusController.readLockRfid(dockBean.addr.toInt() - 1, lockBean.idx) { res ->
|
|
|
- val rfid = res.copyOfRange(3, 11).toHexStrings(false).removeLeadingZeros()
|
|
|
- ModBusController.updateLockRfid(dockBean.addr.toInt(), lockBean.idx, rfid)
|
|
|
+ Executor.delayOnMain(200) {
|
|
|
+ PresentationManager.updateSimpleLockReturnStatus()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -99,4 +112,28 @@ class SimpleProcessActivity : BaseActivity<ActivitySimpleProcessBinding>() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ override fun dispatchKeyEvent(event: KeyEvent): Boolean {
|
|
|
+ if (event.action == KeyEvent.ACTION_UP && event.source == InputDevice.SOURCE_KEYBOARD) {
|
|
|
+ // 检测到回车开始处理
|
|
|
+ if (event.keyCode == 66) {
|
|
|
+ val formattedCard = cardNo.toLong().toByteArrays().toHexStrings(false)
|
|
|
+ println("Simple demo : $formattedCard")
|
|
|
+ // 重置cardNo
|
|
|
+ cardNo = ""
|
|
|
+
|
|
|
+ val colocker = PresentationManager.mSimpleTicket?.lockerTogetherList?.find { it.rfid == formattedCard }
|
|
|
+ colocker?.let {
|
|
|
+ if (it.status == 0) {
|
|
|
+ it.status = 1
|
|
|
+ } else if (it.status == 1) {
|
|
|
+ it.status = 2
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return super.dispatchKeyEvent(event)
|
|
|
+ }
|
|
|
+ cardNo += event.keyCharacterMap.getDisplayLabel(event.keyCode)
|
|
|
+ }
|
|
|
+ return super.dispatchKeyEvent(event)
|
|
|
+ }
|
|
|
}
|