|
@@ -76,67 +76,47 @@ class JobProgressPresenter : BasePresenter<IJobProgressView>() {
|
|
|
*/
|
|
*/
|
|
|
fun handleLockProcess(ticketId: Long) {
|
|
fun handleLockProcess(ticketId: Long) {
|
|
|
getTicketDetail(ticketId) { ticketDetail ->
|
|
getTicketDetail(ticketId) { ticketDetail ->
|
|
|
|
|
+ LogUtil.i("getTicketDetail : $ticketDetail")
|
|
|
val role = ticketDetail?.jobTicketUserList?.find { it.userId == SPUtils.getLoginUser(mContext!!)?.userId && it.userType == USER_TYPE_LOCKER }
|
|
val role = ticketDetail?.jobTicketUserList?.find { it.userId == SPUtils.getLoginUser(mContext!!)?.userId && it.userType == USER_TYPE_LOCKER }
|
|
|
if (role == null) {
|
|
if (role == null) {
|
|
|
ToastUtils.tip(R.string.you_are_not_locker_tip)
|
|
ToastUtils.tip(R.string.you_are_not_locker_tip)
|
|
|
return@getTicketDetail
|
|
return@getTicketDetail
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- when (role.jobStatus) {
|
|
|
|
|
- JOB_STATUS_NOT_STARTED, JOB_STATUS_ACQUIRE_LOCK -> {
|
|
|
|
|
- NetApi.getTicketEquipDetail(ticketId) { equipDetail ->
|
|
|
|
|
- // 取锁具、取钥匙
|
|
|
|
|
- val needLockCount = equipDetail?.ticketLockVOList?.filter { it.lockId == null }?.size ?: 0
|
|
|
|
|
- BusinessManager.checkEquipCount(needLockCount) { keyPair, lockMap ->
|
|
|
|
|
- val lockList = mutableListOf<LockTakeUpdateReqVO>()
|
|
|
|
|
- lockMap.forEach { (_, list) ->
|
|
|
|
|
- lockList.addAll(list.map { LockTakeUpdateReqVO(ticketDetail.ticketId, it.rfid, mContext!!.serialNo()) })
|
|
|
|
|
- }
|
|
|
|
|
- NetApi.updateLockTake(lockList) {
|
|
|
|
|
- if (it == true) {
|
|
|
|
|
- lockMap.forEach { (addr, lockList) ->
|
|
|
|
|
- // 开锁卡扣
|
|
|
|
|
- ModBusController.controlLockBuckle(true, addr, lockList.map { it.idx }.toMutableList())
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // 更新锁具信息后再发,防止后台失败
|
|
|
|
|
- // null表示锁具数量不够,不给钥匙
|
|
|
|
|
- if (keyPair != null) {
|
|
|
|
|
- // 更新钥匙信息
|
|
|
|
|
- NetApi.updateKeyTake(ticketDetail.ticketId!!, keyPair.second?.rfid!!, mContext!!.serialNo()) {
|
|
|
|
|
- if (it) {
|
|
|
|
|
- // 下发工作票
|
|
|
|
|
- BusinessManager.sendTicketBusiness(
|
|
|
|
|
- keyPair.second?.mac!!,
|
|
|
|
|
- ticketDetail,
|
|
|
|
|
- lockList.map { it.lockNfc }.toMutableList(),
|
|
|
|
|
- ActivityUtils.currentActivity() as BaseActivity<*>
|
|
|
|
|
- ) { b, s, rst ->
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 3个状态全检查锁和钥匙分配情况,防止第一次拿了钥匙和部分锁
|
|
|
|
|
+ if (role.jobStatus == JOB_STATUS_NOT_STARTED || role.jobStatus == JOB_STATUS_ACQUIRE_LOCK || role.jobStatus == JOB_STATUS_ACQUIRE_KEY) {
|
|
|
|
|
+ NetApi.getTicketEquipDetail(ticketId) { equipDetail ->
|
|
|
|
|
+ // 取锁具、取钥匙
|
|
|
|
|
+ val needLockCount = equipDetail?.ticketLockVOList?.filter { it.lockId == null }?.size ?: 0
|
|
|
|
|
+ val isNeedKey = equipDetail?.ticketKeyVOList?.filter { it.keyId == null }?.size != 1
|
|
|
|
|
+ BusinessManager.checkEquipCount(needLockCount, isNeedKey) { keyPair, lockMap ->
|
|
|
|
|
+ val lockList = mutableListOf<LockTakeUpdateReqVO>()
|
|
|
|
|
+ lockMap.forEach { (_, list) ->
|
|
|
|
|
+ lockList.addAll(list.map { LockTakeUpdateReqVO(ticketDetail.ticketId, it.rfid, mContext!!.serialNo()) })
|
|
|
|
|
+ }
|
|
|
|
|
+ NetApi.updateLockTake(lockList) {
|
|
|
|
|
+ if (it == true) {
|
|
|
|
|
+ lockMap.forEach { (addr, lockList) ->
|
|
|
|
|
+ // 开锁卡扣
|
|
|
|
|
+ ModBusController.controlLockBuckle(true, addr, lockList.map { it.idx }.toMutableList())
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- JOB_STATUS_ACQUIRE_KEY -> {
|
|
|
|
|
- // 这个时候锁具已经全了
|
|
|
|
|
- BusinessManager.checkEquipCount(0) { keyPair, _ ->
|
|
|
|
|
- // null表示锁具数量不够,不给钥匙
|
|
|
|
|
- if (keyPair != null) {
|
|
|
|
|
- // 更新钥匙信息
|
|
|
|
|
- NetApi.updateKeyTake(ticketDetail.ticketId!!, keyPair.second?.rfid!!, mContext!!.serialNo()) {
|
|
|
|
|
- if (it) {
|
|
|
|
|
- NetApi.getTicketEquipDetail(ticketId) { equipDetail ->
|
|
|
|
|
|
|
+ // 更新锁具信息后再发,防止后台失败
|
|
|
|
|
+ // null表示锁具数量不够,不给钥匙
|
|
|
|
|
+ if (keyPair != null) {
|
|
|
|
|
+ // 更新钥匙信息
|
|
|
|
|
+ NetApi.updateKeyTake(ticketDetail.ticketId!!, keyPair.second?.rfid!!, mContext!!.serialNo()) {
|
|
|
|
|
+ LogUtil.i("updateKeyTake : ${keyPair.second?.rfid}")
|
|
|
|
|
+ if (it) {
|
|
|
|
|
+ LogUtil.i("工作票挂锁list : $lockList")
|
|
|
// 下发工作票
|
|
// 下发工作票
|
|
|
BusinessManager.sendTicketBusiness(
|
|
BusinessManager.sendTicketBusiness(
|
|
|
keyPair.second?.mac!!,
|
|
keyPair.second?.mac!!,
|
|
|
ticketDetail,
|
|
ticketDetail,
|
|
|
- equipDetail?.ticketLockVOList?.map { it.lockNfc }?.toMutableList(),
|
|
|
|
|
|
|
+ lockList.map { it.lockNfc }.toMutableList(),
|
|
|
ActivityUtils.currentActivity() as BaseActivity<*>
|
|
ActivityUtils.currentActivity() as BaseActivity<*>
|
|
|
) { b, s, rst ->
|
|
) { b, s, rst ->
|
|
|
|
|
+ LogUtil.i("工作票下发 : $b - $s - $rst")
|
|
|
(ActivityUtils.currentActivity() as BaseActivity<*>).handleLoading(b, s)
|
|
(ActivityUtils.currentActivity() as BaseActivity<*>).handleLoading(b, s)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -159,7 +139,7 @@ class JobProgressPresenter : BasePresenter<IJobProgressView>() {
|
|
|
ToastUtils.tip(R.string.you_are_not_locker_tip)
|
|
ToastUtils.tip(R.string.you_are_not_locker_tip)
|
|
|
return@getTicketDetail
|
|
return@getTicketDetail
|
|
|
}
|
|
}
|
|
|
- BusinessManager.checkEquipCount(0) { keyPair, _ ->
|
|
|
|
|
|
|
+ BusinessManager.checkEquipCount(0, true) { keyPair, _ ->
|
|
|
// null表示锁具数量不够,不给钥匙
|
|
// null表示锁具数量不够,不给钥匙
|
|
|
if (keyPair != null) {
|
|
if (keyPair != null) {
|
|
|
// 更新钥匙信息
|
|
// 更新钥匙信息
|