|
@@ -1,12 +1,22 @@
|
|
|
package com.grkj.iscs.view.presenter
|
|
package com.grkj.iscs.view.presenter
|
|
|
|
|
|
|
|
|
|
+import com.grkj.iscs.BusinessManager
|
|
|
import com.grkj.iscs.R
|
|
import com.grkj.iscs.R
|
|
|
|
|
+import com.grkj.iscs.extentions.serialNo
|
|
|
|
|
+import com.grkj.iscs.modbus.ModBusController
|
|
|
|
|
+import com.grkj.iscs.model.Constants.JOB_STATUS_ACQUIRE_KEY
|
|
|
|
|
+import com.grkj.iscs.model.Constants.JOB_STATUS_ACQUIRE_LOCK
|
|
|
|
|
+import com.grkj.iscs.model.Constants.JOB_STATUS_NOT_STARTED
|
|
|
|
|
+import com.grkj.iscs.model.Constants.USER_TYPE_LOCKER
|
|
|
|
|
+import com.grkj.iscs.model.vo.lock.LockTakeUpdateReqVO
|
|
|
import com.grkj.iscs.model.vo.ticket.StepDetailRespVO
|
|
import com.grkj.iscs.model.vo.ticket.StepDetailRespVO
|
|
|
import com.grkj.iscs.model.vo.ticket.TicketDetailMonitorRespVO
|
|
import com.grkj.iscs.model.vo.ticket.TicketDetailMonitorRespVO
|
|
|
import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
|
|
import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
|
|
|
import com.grkj.iscs.util.Executor
|
|
import com.grkj.iscs.util.Executor
|
|
|
import com.grkj.iscs.util.NetApi
|
|
import com.grkj.iscs.util.NetApi
|
|
|
|
|
+import com.grkj.iscs.util.SPUtils
|
|
|
import com.grkj.iscs.util.ToastUtils
|
|
import com.grkj.iscs.util.ToastUtils
|
|
|
|
|
+import com.grkj.iscs.view.activity.TicketDetailActivity
|
|
|
import com.grkj.iscs.view.base.BasePresenter
|
|
import com.grkj.iscs.view.base.BasePresenter
|
|
|
import com.grkj.iscs.view.iview.IJobProgressVIew
|
|
import com.grkj.iscs.view.iview.IJobProgressVIew
|
|
|
|
|
|
|
@@ -41,4 +51,77 @@ class JobProgressPresenter : BasePresenter<IJobProgressVIew>() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 上锁人上锁流程
|
|
|
|
|
+ */
|
|
|
|
|
+ fun handleLockProcess(ticketId: Long) {
|
|
|
|
|
+ // TODO 上锁人上锁流程
|
|
|
|
|
+ getTicketDetail(ticketId) { ticketDetail ->
|
|
|
|
|
+ val role = ticketDetail?.jobTicketUserList?.find { it.userId == SPUtils.getLoginUser(mContext!!)?.userId && it.userType == USER_TYPE_LOCKER }
|
|
|
|
|
+ if (role == null) {
|
|
|
|
|
+ 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 list = mutableListOf<LockTakeUpdateReqVO>()
|
|
|
|
|
+ lockMap.forEach { (_, lockList) ->
|
|
|
|
|
+ list.addAll(lockList.map { LockTakeUpdateReqVO(ticketDetail.ticketId, it.rfid, mContext!!.serialNo()) })
|
|
|
|
|
+ }
|
|
|
|
|
+ NetApi.updateLockTake(list) {
|
|
|
|
|
+ if (it == true) {
|
|
|
|
|
+ lockMap.forEach { (addr, lockList) ->
|
|
|
|
|
+ // 开锁卡扣
|
|
|
|
|
+ ModBusController.controlLockBuckle(true, addr.toInt(), 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, mvpView as TicketDetailActivity) { b, s, rst ->
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ JOB_STATUS_ACQUIRE_KEY -> {
|
|
|
|
|
+ // 这个时候锁具已经全了
|
|
|
|
|
+ BusinessManager.checkEquipCount(0) { keyPair, _ ->
|
|
|
|
|
+ // null表示锁具数量不够,不给钥匙
|
|
|
|
|
+ if (keyPair != null) {
|
|
|
|
|
+ // 更新钥匙信息
|
|
|
|
|
+ NetApi.updateKeyTake(ticketDetail.ticketId!!, keyPair.second?.rfid!!, mContext!!.serialNo()) {
|
|
|
|
|
+ if (it) {
|
|
|
|
|
+ // 下发工作票
|
|
|
|
|
+ BusinessManager.sendTicketBusiness(keyPair.second?.mac!!, ticketDetail, mvpView as TicketDetailActivity) { b, s, rst ->
|
|
|
|
|
+ (mvpView as TicketDetailActivity).handleLoading(b, s)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 上锁人解锁流程
|
|
|
|
|
+ */
|
|
|
|
|
+ fun handleUnlockProcess(ticketId: Long) {
|
|
|
|
|
+ // TODO 上锁人解锁流程
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|