|
|
@@ -36,6 +36,7 @@ import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
|
|
|
import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
|
|
|
import com.grkj.iscs.model.bo.WorkTicketGetBO
|
|
|
import com.grkj.iscs.model.bo.WorkTicketSendBO
|
|
|
+import com.grkj.iscs.model.bo.WorkTicketSendBO.LockListBO
|
|
|
import com.grkj.iscs.model.vo.ticket.LockPointUpdateReqVO
|
|
|
import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
|
|
|
import com.grkj.iscs.util.ActivityUtils
|
|
|
@@ -370,6 +371,7 @@ object BusinessManager {
|
|
|
* 注册连接监听
|
|
|
*/
|
|
|
fun registerConnectListener(mac: String, callBack: ((Boolean, BleBean?) -> Unit)? = null) {
|
|
|
+ LogUtil.i("registerConnectListener : $mac")
|
|
|
if (connectListeners.any { it.mac == mac }) {
|
|
|
return
|
|
|
}
|
|
|
@@ -387,6 +389,7 @@ object BusinessManager {
|
|
|
* 连接监听反注册
|
|
|
*/
|
|
|
fun unregisterConnectListener(mac: String, bleBean: BleBean? = null) {
|
|
|
+ LogUtil.i("unregisterConnectListener : $mac")
|
|
|
connectListeners.find { it.mac == mac }?.let {
|
|
|
// TODO 移除的时候是否要回调待定
|
|
|
// it.callBack?.invoke(true, bleBean)
|
|
|
@@ -477,7 +480,7 @@ object BusinessManager {
|
|
|
}
|
|
|
|
|
|
override fun onScanFinished(scanResultList: MutableList<BleDevice>?) {
|
|
|
- LogUtil.i("onScanFinished: $mac - $scanResultList")
|
|
|
+ LogUtil.i("onScanFinished: $mac")
|
|
|
loadingCallBack?.invoke(false, null, null)
|
|
|
if (connectListeners.any { it.mac == mac }) {
|
|
|
LogUtil.w("$mac is not scanned")
|
|
|
@@ -513,7 +516,7 @@ object BusinessManager {
|
|
|
|
|
|
override fun onConnectSuccess(bleDevice: BleDevice?, gatt: BluetoothGatt?, status: Int) {
|
|
|
loadingCallBack?.invoke(false, null, null)
|
|
|
- LogUtil.i("onConnectSuccess : $bleDevice")
|
|
|
+ LogUtil.i("onConnectSuccess : ${bleDevice?.mac}")
|
|
|
bleDevice?.let {
|
|
|
val bleBean = BleBean(it)
|
|
|
deviceList.add(bleBean)
|
|
|
@@ -631,12 +634,13 @@ object BusinessManager {
|
|
|
fun sendTicketBusiness(
|
|
|
mac: String,
|
|
|
ticketDetail: TicketDetailRespVO,
|
|
|
+ lockList: MutableList<String?>?,
|
|
|
activity: AppCompatActivity,
|
|
|
loadingCallBack: ((Boolean, String?, Boolean?) -> Unit)?,
|
|
|
) {
|
|
|
registerConnectListener(mac) { isDone, bleBean ->
|
|
|
if (!isDone) {
|
|
|
- sendTicketBusiness(mac, ticketDetail, activity, loadingCallBack)
|
|
|
+ sendTicketBusiness(mac, ticketDetail, lockList, activity, loadingCallBack)
|
|
|
return@registerConnectListener
|
|
|
}
|
|
|
if (bleBean == null) {
|
|
|
@@ -644,7 +648,7 @@ object BusinessManager {
|
|
|
return@registerConnectListener
|
|
|
}
|
|
|
// 单bleBean json赋值
|
|
|
- bleBean.ticketSend = generateTicketSendJson(ticketDetail)
|
|
|
+ bleBean.ticketSend = generateTicketSendJson(ticketDetail, lockList)
|
|
|
bleBean.ticketSend?.let { itJson ->
|
|
|
sendTicket(itJson, bleBean.bleDevice, loadingCallBack)
|
|
|
}
|
|
|
@@ -690,9 +694,9 @@ object BusinessManager {
|
|
|
*
|
|
|
* @param vo 工作票详情
|
|
|
*/
|
|
|
- private fun generateTicketSendJson(vo: TicketDetailRespVO): String {
|
|
|
+ private fun generateTicketSendJson(vo: TicketDetailRespVO, lockList: MutableList<String?>?): String {
|
|
|
// 用ticketStatus的"待上锁"进行判断
|
|
|
- val isLock = vo.ticketStatus == Constants.TICKET_STATUS_READY_TO_LOCK
|
|
|
+ val isLock = (vo.ticketStatus == Constants.TICKET_STATUS_NOT_STARTED || vo.ticketStatus == Constants.TICKET_STATUS_READY_TO_LOCK)
|
|
|
val bo = WorkTicketSendBO(
|
|
|
cardNo = SPUtils.getLoginUser(MyApplication.instance!!.applicationContext)?.cardNfc,
|
|
|
)
|
|
|
@@ -711,9 +715,11 @@ object BusinessManager {
|
|
|
dataId = pointVO.pointId?.toInt(),
|
|
|
equipRfidNo = pointVO.pointNfc,
|
|
|
equipName = pointVO.pointName,
|
|
|
- infoRfidNo = pointVO.pointName,
|
|
|
target = if (isLock) 0 else 1
|
|
|
)
|
|
|
+ if (!isLock) {
|
|
|
+ task.infoRfidNo = pointVO.lockNfc
|
|
|
+ }
|
|
|
pointVO.prePointId?.let {
|
|
|
task.prevId = it.toInt()
|
|
|
}
|
|
|
@@ -727,10 +733,17 @@ object BusinessManager {
|
|
|
dataBO.dataList = taskList
|
|
|
bo.data = mutableListOf(dataBO)
|
|
|
if (isLock) {
|
|
|
- bo.lockList = mutableListOf()
|
|
|
+ // TODO 挂锁数组
|
|
|
+ if (!lockList.isNullOrEmpty()) {
|
|
|
+ bo.lockList = mutableListOf()
|
|
|
+ lockList.forEachIndexed { index, s ->
|
|
|
+ bo.lockList?.add(LockListBO((index + 1).toString(), s))
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
// TODO partList 待补充
|
|
|
val jsonStr = Gson().toJson(bo)
|
|
|
+ LogUtil.i("json : $jsonStr")
|
|
|
return jsonStr
|
|
|
}
|
|
|
|
|
|
@@ -782,6 +795,7 @@ object BusinessManager {
|
|
|
loadingCallBack?.invoke(false, null, null)
|
|
|
if (isSuccess) {
|
|
|
// 下发完毕,切换工作模式
|
|
|
+ LogUtil.i("工作票下发完毕")
|
|
|
loadingCallBack?.invoke(true, "切换钥匙为工作模式", null)
|
|
|
BleCmdManager.switchMode(STATUS_WORK, bleBean.bleDevice, object : CustomBleWriteCallback() {
|
|
|
override fun onWriteSuccess(current: Int, total: Int, justWrite: ByteArray?) {
|