Przeglądaj źródła

作业票详情接口合并;启动页改成登录页;删除冗余文件

Frankensteinly 6 miesięcy temu
rodzic
commit
5938fd41d9

+ 8 - 6
app/src/main/AndroidManifest.xml

@@ -49,8 +49,14 @@
             android:windowSoftInputMode="adjustPan|adjustResize" />
         <activity
             android:name=".view.activity.LoginActivity"
-            android:exported="false"
-            android:launchMode="singleTask" />
+            android:exported="true"
+            android:launchMode="singleTask" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
         <activity
             android:name=".view.activity.CreateTicketActivity"
             android:exported="false" />
@@ -95,11 +101,7 @@
         <activity
             android:name=".view.activity.MainActivity"
             android:exported="true">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
 
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
         </activity>
     </application>
 

+ 10 - 12
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -993,7 +993,7 @@ object BusinessManager {
             codeId = 1
         )
         val taskList = ArrayList<WorkTicketSendBO.DataBO.DataListBO>()
-        vo.pointDetailVOList?.let { itList ->
+        vo.ticketPointsVOList?.let { itList ->
             itList.forEach { pointVO ->
                 val task = WorkTicketSendBO.DataBO.DataListBO(
                     dataId = pointVO.pointId?.toInt(),
@@ -1409,7 +1409,7 @@ object BusinessManager {
                                 step = it
                             }
                             NetApi.getTicketDetail(itBO.ticketId) { ticketDetail ->
-                                val role = ticketDetail?.jobTicketUserList?.find {
+                                val role = ticketDetail?.ticketUserVOList?.find {
                                     it.userId == SPUtils.getLoginUser(MyApplication.instance?.applicationContext!!)?.userId && it.userType == USER_TYPE_LOCKER
                                 }
                                 if (role == null) {
@@ -1417,16 +1417,14 @@ object BusinessManager {
                                     return@getTicketDetail
                                 }
                                 if (step == 4) {    // 上锁工作票
-                                    NetApi.getTicketEquipDetail(itBO.ticketId) { equipDetail ->
-                                        sendTicketBusiness(
-                                            true,
-                                            currentModeMsg.bleBean.bleDevice.mac,
-                                            ticketDetail,
-                                            equipDetail?.ticketLockVOList?.map { it.lockNfc }?.toMutableList(),
-                                            ActivityUtils.currentActivity() as BaseActivity<*>,
-                                            true
-                                        )
-                                    }
+                                    sendTicketBusiness(
+                                        true,
+                                        currentModeMsg.bleBean.bleDevice.mac,
+                                        ticketDetail,
+                                        ticketDetail.ticketLockVOList?.map { it.lockNfc }?.toMutableList(),
+                                        ActivityUtils.currentActivity() as BaseActivity<*>,
+                                        true
+                                    )
                                 } else if (step == 7) { // 解锁工作票
                                     sendTicketBusiness(
                                         false,

+ 1 - 1
app/src/main/java/com/grkj/iscs/model/UrlConsts.kt

@@ -66,7 +66,7 @@ object UrlConsts {
     /**
      * 获取作业票详细信息
      */
-    const val DETAIL_TICKET = "/iscs/ticket/selectIsJobTicketById"
+//    const val DETAIL_TICKET = "/iscs/ticket/selectIsJobTicketById"
 
     /**
      * 刷卡登录

+ 75 - 27
app/src/main/java/com/grkj/iscs/model/vo/ticket/TicketDetailRespVO.kt

@@ -5,59 +5,107 @@ data class TicketDetailRespVO(
     val ticketCode: String?,
     val ticketName: String?,
     val workshopId: Long?,
-    val workshopName: String?,
     val workareaId: Long?,
-    val workareaName: String?,
     val sopId: Long?,
-    val sopName: String?,
     val ticketType: String?,
     val ticketContent: String?,
     val ticketStatus: String?,
     val ticketStartTime: String?,
     val ticketEndTime: String?,
     val delFlag: String?,
-    val lockId: Long?,
-    val lockedByKeyId: Long?,
-    val unlockedByKeyId: Long?,
-    val lockTime: String?,
-    val unlockTime: String?,
-    val pointDetailVOList: List<PointDetailVO>?,
-    val jobTicketUserList: List<UserVO>?,
-    val createBy: String?
+    val createBy: String?,
+    val ticketKeyVOList: MutableList<JobTicketKeyVO>?,
+    val ticketLockVOList: MutableList<JobTicketLockVO>?,
+    val ticketLocksetVOList: MutableList<JobTicketLocksetVO>?,
+    val ticketUserVOList: MutableList<JobTicketUserVO>?,
+    val ticketPointsVOList: MutableList<JobTicketPointsVO>?,
+    val noUnlockTicketPointsVOSet: MutableList<JobTicketPointsVO>?
 ) {
-    data class PointDetailVO(
+    data class JobTicketKeyVO(
+        val recordId: Long?,
+        val ticketId: Long?,
+        val keyId: Long?,
+        val fromHardwareId: Long?,
+        val toHardwareId: Long?,
+        val collectTime: String?,
+        val giveBackTime: String?,
+        val keyStatus: String?,
+        val delFlag: String?,
+        val ticketType: Int?
+    )
+
+    data class JobTicketLockVO(
+        val recordId: Long?,
+        val ticketId: Long?,
+        val lockId: Long?,
+        val lockNfc: String?,
+        val fromHardwareId: Long?,
+        val toHardwareId: Long?,
+        val isolationPointId: Long?,
+        val lockStatus: String?,
+        val delFlag: String?
+    )
+
+    data class JobTicketLocksetVO(
+        val recordId: Long?,
+        val jobTicketId: Long?,
+        val pointId: Long?,
+        val locksetId: Long?,
+        val fromHardwareId: Long?,
+        val toHardwareId: Long?,
+        val locksetTypeId: Long?,
+        val locksetStatus: String?,
+        val collectTime: String?,
+        val giveBackTime: String?,
+        val delFlag: String?
+    )
+
+    data class JobTicketUserVO(
+        val recordId: Long?,
+        val ticketId: Long?,
+        val userId: Long?,
+        val userName: String?,
+        val userType: String?,
+        val userRole: String?,
+        val jobStatus: Int?,
+    )
+
+    data class JobTicketPointsVO(
+        val recordId: Long?,
+        val ticketId: Long?,
+        val workshopId: Long?,
+        val workareaId: Long?,
         val pointId: Long?,
+        val pointStatus: String?,
+        val delFlag: String?,
+        val lockId: Long?,
+        val lockedByKeyId: Long?,
+        val unlockedByKeyId: Long?,
+        val lockTime: String?,
+        val unlockTime: String?,
+        val prePointId: Long?,
         val pointCode: String?,
         val pointName: String?,
         val pointType: String?,
         val pointTypeName: String?,
         val pointNfc: String?,
-        val workshopId: Long?,
         val workshopName: String?,
-        val workareaId: Long?,
         val workareaName: String?,
+        val workstationId: Long?,
+        val workstationName: String?,
+        val lotoId: Long?,
+        val lotoName: String?,
         val powerType: String?,
         val powerTypeName: String?,
         val isolationMethod: String?,
         val pointIcon: String?,
         val pointPicture: String?,
-        val delFlag: String?,
         val lockTypeId: Long?,
         val lockTypeCode: String?,
         val lockTypeName: String?,
         val lockTypeIcon: String?,
         val lockTypeImg: String?,
-        val lockId: Long?,
         val lockNfc: String?,
-        val prePointId: Long?)
-
-    data class UserVO(
-        val recordId: Long?,
-        val ticketId: Long?,
-        val userId: Long?,
-        val userName: String?,
-        val userType: String?,
-        val userRole: String?,
-        val jobStatus: Int?,
-        val delFlag: String?)
+        val locksetTypeId: Long?,
+    )
 }

+ 0 - 58
app/src/main/java/com/grkj/iscs/model/vo/ticket/TicketEquipDetailRespVO.kt

@@ -1,58 +0,0 @@
-package com.grkj.iscs.model.vo.ticket
-
-data class TicketEquipDetailRespVO(
-    val ticketId: Long?,
-    val ticketCode: String?,
-    val ticketName: String?,
-    val workshopId: Long?,
-    val workareaId: Long?,
-    val sopId: Long?,
-    val ticketType: String?,
-    val ticketContent: String?,
-    val ticketStatus: String?,
-    val ticketStartTime: String?,
-    val ticketEndTime: String?,
-    val delFlag: String?,
-    val ticketKeyVOList: List<JobTicketKeyVO>?,
-    val ticketLockVOList: List<JobTicketLockVO>?,
-    val ticketLocksetVOList: List<JobTicketLocksetVO>?
-) {
-    data class JobTicketKeyVO(
-        val recordId: Long?,
-        val ticketId: Long?,
-        val keyId: Long?,
-        val fromHardwareId: Long?,
-        val toHardwareId: Long?,
-        val collectTime: String?,
-        val giveBackTime: String?,
-        val keyStatus: String?,
-        val delFlag: String?,
-        val ticketType: Int?
-    )
-
-    data class JobTicketLockVO(
-        val recordId: Long?,
-        val ticketId: Long?,
-        val lockId: Long?,
-        val lockNfc: String?,
-        val fromHardwareId: Long?,
-        val toHardwareId: Long?,
-        val isolationPointId: Long?,
-        val lockStatus: String?,
-        val delFlag: String?
-    )
-
-    data class JobTicketLocksetVO(
-        val recordId: Long?,
-        val jobTicketId: Long?,
-        val pointId: Long?,
-        val locksetId: Long?,
-        val fromHardwareId: Long?,
-        val toHardwareId: Long?,
-        val locksetTypeId: Long?,
-        val locksetStatus: String?,
-        val collectTime: String?,
-        val giveBackTime: String?,
-        val delFlag: String?
-    )
-}

+ 1 - 18
app/src/main/java/com/grkj/iscs/util/NetApi.kt

@@ -25,7 +25,6 @@ import com.grkj.iscs.model.vo.ticket.LotoMapRespVO
 import com.grkj.iscs.model.vo.ticket.StepDetailRespVO
 import com.grkj.iscs.model.vo.ticket.TicketDetailMonitorRespVO
 import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
-import com.grkj.iscs.model.vo.ticket.TicketEquipDetailRespVO
 import com.grkj.iscs.model.vo.ticket.TicketPageRespVO
 import com.grkj.iscs.model.vo.ticket.TicketTypeRespVO
 import com.grkj.iscs.model.vo.ticket.TicketUserReqVO
@@ -270,22 +269,6 @@ object NetApi {
         )
     }
 
-    /**
-     * 获取作业票详细信息
-     */
-    fun getTicketDetail(ticketId: Long, callBack: (TicketDetailRespVO?) -> Unit) {
-        NetHttpManager.getInstance().doRequestNet(
-            UrlConsts.DETAIL_TICKET,
-            false,
-            mapOf("ticketId" to ticketId),
-            { res, _, _ ->
-                res?.let {
-                    callBack.invoke(getRefBean(it))
-                }
-            }, isGet = true, isAuth = true
-        )
-    }
-
     /**
      * 根据登录用户获取刷卡信息
      */
@@ -424,7 +407,7 @@ object NetApi {
     /**
      * 获取作业票和关联数据
      */
-    fun getTicketEquipDetail(ticketId: Long, callBack: (TicketEquipDetailRespVO?) -> Unit) {
+    fun getTicketDetail(ticketId: Long, callBack: (TicketDetailRespVO?) -> Unit) {
         NetHttpManager.getInstance().doRequestNet(
             UrlConsts.TICKET_EQUIP_DETAIL,
             false,

+ 35 - 36
app/src/main/java/com/grkj/iscs/view/fragment/JobProgressFragment.kt

@@ -13,6 +13,7 @@ import com.grkj.iscs.model.eventmsg.MsgEvent
 import com.grkj.iscs.model.eventmsg.MsgEventConstants.MSG_EVENT_UPDATE_TICKET_PROGRESS
 import com.grkj.iscs.model.eventmsg.UpdateTicketProgressMsg
 import com.grkj.iscs.model.vo.ticket.TicketDetailMonitorRespVO
+import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.view.base.BaseMvpFragment
@@ -119,10 +120,11 @@ class JobProgressFragment(val goBack: () -> Unit) :
 
         presenter?.getTicketDetail(pageChangeBO.ticketId) {
             mBinding?.tvTitle?.text = it?.ticketName
+            handleBottomTip(it)
         }
 
         getStepDetail(pageChangeBO.ticketId!!) {
-            presenter?.getTicketDetailMonitor(pageChangeBO.ticketId!!) {
+            presenter?.getTicketDetailMonitor(pageChangeBO.ticketId) {
                 mPointList.clear()
                 mUserList.clear()
                 mPointList.addAll(it?.ticketPointsList!!)
@@ -130,7 +132,6 @@ class JobProgressFragment(val goBack: () -> Unit) :
                 mBinding?.rvPoint?.adapter?.notifyDataSetChanged()
                 mBinding?.rvColocker?.adapter?.notifyDataSetChanged()
                 handleActionBtnVisibility()
-                handleBottomTip(pageChangeBO.ticketId)
             }
         }
     }
@@ -216,47 +217,45 @@ class JobProgressFragment(val goBack: () -> Unit) :
         mBinding?.cbAction?.isEnabled = mBinding?.cbAction?.visibility == View.VISIBLE
     }
 
-    private fun handleBottomTip(ticketId: Long) {
-        presenter?.getEquipDetail(ticketId) { equipDetail ->
-            when (mStep) {
-                4 -> {
-                    val keyCount = equipDetail?.ticketKeyVOList?.count { it.keyId != null }
-                    if (keyCount == null || keyCount < 1) {
+    private fun handleBottomTip(ticketDetail: TicketDetailRespVO?) {
+        when (mStep) {
+            4 -> {
+                val keyCount = ticketDetail?.ticketKeyVOList?.count { it.keyId != null }
+                if (keyCount == null || keyCount < 1) {
+                    mBinding?.llTip?.visibility = View.VISIBLE
+                    mBinding?.tvTip?.text = getString(R.string.please_go_locking)
+                } else if (keyCount == 1) {
+                    if (ticketDetail.ticketKeyVOList[0].keyStatus == "1") {
                         mBinding?.llTip?.visibility = View.VISIBLE
-                        mBinding?.tvTip?.text = getString(R.string.please_go_locking)
-                    } else if (keyCount == 1) {
-                        if (equipDetail.ticketKeyVOList[0].keyStatus == "1") {
-                            mBinding?.llTip?.visibility = View.VISIBLE
-                            mBinding?.tvTip?.text = getString(R.string.please_return_key_after_locking)
-                        } else {
-                            mBinding?.llTip?.visibility = View.GONE
-                            mBinding?.tvTip?.text = ""
-                        }
+                        mBinding?.tvTip?.text = getString(R.string.please_return_key_after_locking)
+                    } else {
+                        mBinding?.llTip?.visibility = View.GONE
+                        mBinding?.tvTip?.text = ""
                     }
                 }
-                6 -> {
+            }
+            6 -> {
+                mBinding?.llTip?.visibility = View.VISIBLE
+                mBinding?.tvTip?.text = getString(R.string.please_do_colock)
+            }
+            7 -> {
+                val keyCount = ticketDetail?.ticketKeyVOList?.count { it.keyId != null }
+                if (keyCount == 1) {
                     mBinding?.llTip?.visibility = View.VISIBLE
-                    mBinding?.tvTip?.text = getString(R.string.please_do_colock)
-                }
-                7 -> {
-                    val keyCount = equipDetail?.ticketKeyVOList?.count { it.keyId != null }
-                    if (keyCount == 1) {
+                    mBinding?.tvTip?.text = getString(R.string.please_go_unlocking)
+                } else if (keyCount == 2) {
+                    if (ticketDetail.ticketKeyVOList[1].keyStatus == "1") {
                         mBinding?.llTip?.visibility = View.VISIBLE
-                        mBinding?.tvTip?.text = getString(R.string.please_go_unlocking)
-                    } else if (keyCount == 2) {
-                        if (equipDetail.ticketKeyVOList[1].keyStatus == "1") {
-                            mBinding?.llTip?.visibility = View.VISIBLE
-                            mBinding?.tvTip?.text = getString(R.string.please_return_key_after_unlocking)
-                        } else {
-                            mBinding?.llTip?.visibility = View.GONE
-                            mBinding?.tvTip?.text = ""
-                        }
+                        mBinding?.tvTip?.text = getString(R.string.please_return_key_after_unlocking)
+                    } else {
+                        mBinding?.llTip?.visibility = View.GONE
+                        mBinding?.tvTip?.text = ""
                     }
                 }
-                else -> {
-                    mBinding?.llTip?.visibility = View.GONE
-                    mBinding?.tvTip?.text = ""
-                }
+            }
+            else -> {
+                mBinding?.llTip?.visibility = View.GONE
+                mBinding?.tvTip?.text = ""
             }
         }
     }

+ 1 - 1
app/src/main/java/com/grkj/iscs/view/fragment/StepFragment.kt

@@ -177,7 +177,7 @@ class StepFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Uni
                 }
                 mCanHandle = itCreator.toLong() == SPUtils.getLoginUser(requireContext())?.userId
             }
-            mCanHandle = (mCanHandle == true) || it?.jobTicketUserList?.any { it.userId != null && it.userId.toLong() == SPUtils.getLoginUser(requireContext())?.userId } == true
+            mCanHandle = (mCanHandle == true) || it?.ticketUserVOList?.any { it.userId != null && it.userId.toLong() == SPUtils.getLoginUser(requireContext())?.userId } == true
         }
 
         presenter?.getStepDetail(pageChangeBO.ticketId!!) {

+ 5 - 5
app/src/main/java/com/grkj/iscs/view/fragment/WorkerFragment.kt

@@ -25,7 +25,7 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
     BaseMvpFragment<IWorkerView, WorkerPresenter, FragmentWorkerBinding>() {
     private val mSelectedList = mutableListOf<TicketUserReqVO>()
     private val mColockerSelectedShowList = mutableListOf<TicketUserReqVO>()    // 仅展示用
-    private val mOriginalUserList = mutableListOf<TicketDetailRespVO.UserVO>()  // 修改前的人员选择列表
+    private val mOriginalUserList = mutableListOf<TicketDetailRespVO.JobTicketUserVO>()  // 修改前的人员选择列表
 
     private val mLockerList = mutableListOf<UserListRespVO.Row>()
     private val mColockerInsideList = mutableListOf<UserListRespVO.Row>()
@@ -172,11 +172,11 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
         presenter?.getTicketDetail(pageChangeBO.ticketId) {
             mBinding?.tvTitle?.text = it?.ticketName
 
-            if (it?.jobTicketUserList.isNullOrEmpty()) {
+            if (it?.ticketUserVOList.isNullOrEmpty()) {
                 return@getTicketDetail
             }
-            it?.jobTicketUserList?.let { it1 -> mOriginalUserList.addAll(it1) }
-            it?.jobTicketUserList?.forEach { user ->
+            it?.ticketUserVOList?.let { it1 -> mOriginalUserList.addAll(it1) }
+            it?.ticketUserVOList?.forEach { user ->
                 if (user.userRole == USER_ROLE_LOCKER) {
                     mBinding?.layoutLocker?.root?.visibility = View.VISIBLE
                     mBinding?.layoutLocker?.tvName?.text = user.userName
@@ -185,7 +185,7 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
             }
             // 上锁人默认选择自己
             if (mSelectedList.none { it.userRole == USER_ROLE_LOCKER }) {
-                val user = it?.jobTicketUserList?.find { it.userId == SPUtils.getLoginUser(requireContext())?.userId }
+                val user = it?.ticketUserVOList?.find { it.userId == SPUtils.getLoginUser(requireContext())?.userId }
                 user?.let {
                     mSelectedList.add(TicketUserReqVO(it.userId!!, it.userName!!, it.userType!!, USER_ROLE_LOCKER))
                     mBinding?.layoutLocker?.root?.visibility = View.VISIBLE

+ 38 - 52
app/src/main/java/com/grkj/iscs/view/presenter/JobProgressPresenter.kt

@@ -19,7 +19,6 @@ import com.grkj.iscs.model.vo.lock.LockTakeUpdateReqVO
 import com.grkj.iscs.model.vo.ticket.StepDetailRespVO
 import com.grkj.iscs.model.vo.ticket.TicketDetailMonitorRespVO
 import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
-import com.grkj.iscs.model.vo.ticket.TicketEquipDetailRespVO
 import com.grkj.iscs.util.Executor
 import com.grkj.iscs.util.NetApi
 import com.grkj.iscs.util.SPUtils
@@ -32,21 +31,6 @@ import com.grkj.iscs.view.iview.IJobProgressView
 class JobProgressPresenter : BasePresenter<IJobProgressView>() {
     private var tipDialog: TipDialog? = null
 
-    /**
-     * 获取作业票详细信息
-     */
-    fun getTicketDetail(ticketId: Long?, callBack: (TicketDetailRespVO?) -> Unit) {
-        if (ticketId == null) {
-            ToastUtils.tip(mContext!!.resources.getString(R.string.ticket_id_is_null))
-            return
-        }
-        NetApi.getTicketDetail(ticketId) {
-            Executor.runOnMain {
-                callBack.invoke(it)
-            }
-        }
-    }
-
     fun getStepDetail(ticketId: Long, callBack: (MutableList<StepDetailRespVO>?) -> Unit) {
         NetApi.getStepDetail(ticketId) {
             Executor.runOnMain {
@@ -79,8 +63,12 @@ class JobProgressPresenter : BasePresenter<IJobProgressView>() {
         }
     }
 
-    fun getEquipDetail(ticketId: Long, callBack: (TicketEquipDetailRespVO?) -> Unit) {
-        NetApi.getTicketEquipDetail(ticketId) {
+    fun getTicketDetail(ticketId: Long?, callBack: (TicketDetailRespVO?) -> Unit) {
+        if (ticketId == null) {
+            ToastUtils.tip(mContext!!.resources.getString(R.string.ticket_id_is_null))
+            return
+        }
+        NetApi.getTicketDetail(ticketId) {
             Executor.runOnMain {
                 callBack(it)
             }
@@ -103,7 +91,7 @@ class JobProgressPresenter : BasePresenter<IJobProgressView>() {
     fun handleLockProcess(ticketId: Long) {
         getTicketDetail(ticketId) { ticketDetail ->
             LogUtil.i("getTicketDetail lock: $ticketDetail")
-            val role = ticketDetail?.jobTicketUserList?.find { it.userId == SPUtils.getLoginUser(mContext!!)?.userId && it.userType == USER_TYPE_LOCKER }
+            val role = ticketDetail?.ticketUserVOList?.find { it.userId == SPUtils.getLoginUser(mContext!!)?.userId && it.userType == USER_TYPE_LOCKER }
             if (role == null) {
                 ToastUtils.tip(R.string.you_are_not_locker_tip)
                 BusinessManager.sendLoadingEventMsg(null, false)
@@ -112,42 +100,40 @@ class JobProgressPresenter : BasePresenter<IJobProgressView>() {
 
             // 3个状态全检查锁和钥匙分配情况,防止第一次拿了钥匙和部分锁
             if (role.jobStatus == JOB_STATUS_NOT_STARTED || role.jobStatus == JOB_STATUS_ACQUIRE_LOCK || role.jobStatus == JOB_STATUS_ACQUIRE_KEY) {
-                NetApi.getTicketEquipDetail(ticketId) { equipDetail ->
-                    LogUtil.i("EquipDetail : $equipDetail")
-                    // 取锁具、取钥匙
-                    val needLockCount = equipDetail?.ticketLockVOList?.count { it.lockId == null } ?: 0
-                    val readyLockCount = BusinessManager.mDeviceTakeList.count { it.deviceType == DEVICE_TYPE_LOCK && it.ticketId == ticketId }
-                    val realCount = (needLockCount - readyLockCount).coerceAtLeast(0)
-                    if (readyLockCount > 0) {
-                        ToastUtils.tip(R.string.please_take_out_ready_device_first)
-                    }
-                    val isNeedKey = equipDetail?.ticketKeyVOList?.filter { it.keyId == null }?.size != 1
-                            && BusinessManager.mDeviceTakeList.none { it.deviceType == DEVICE_TYPE_KEY && it.ticketId == ticketId }
-                    LogUtil.i("needLockCount = $needLockCount , readyLockCount = $readyLockCount, realCount = $realCount, isNeedKey = $isNeedKey")
-                    BusinessManager.checkEquipCount(realCount, isNeedKey) { keyPair, lockMap ->
-                        if (keyPair == null) {
-                            Executor.runOnMain {
-                                val dialog = TipDialog(mContext!!)
-                                dialog.setTip(mContext!!.getString(R.string.no_key_available_dialog_tip))
-                                var state = 0
-                                dialog.setConfirmListener {
-                                    state = 1
-                                    handleGiveKey(ticketDetail, null, lockMap)
-                                }
-                                dialog.setOnCancelListener {
-                                    state = 2
+                LogUtil.i("EquipDetail : $ticketDetail")
+                // 取锁具、取钥匙
+                val needLockCount = ticketDetail.ticketLockVOList?.count { it.lockId == null } ?: 0
+                val readyLockCount = BusinessManager.mDeviceTakeList.count { it.deviceType == DEVICE_TYPE_LOCK && it.ticketId == ticketId }
+                val realCount = (needLockCount - readyLockCount).coerceAtLeast(0)
+                if (readyLockCount > 0) {
+                    ToastUtils.tip(R.string.please_take_out_ready_device_first)
+                }
+                val isNeedKey = ticketDetail.ticketKeyVOList?.filter { it.keyId == null }?.size != 1
+                        && BusinessManager.mDeviceTakeList.none { it.deviceType == DEVICE_TYPE_KEY && it.ticketId == ticketId }
+                LogUtil.i("needLockCount = $needLockCount , readyLockCount = $readyLockCount, realCount = $realCount, isNeedKey = $isNeedKey")
+                BusinessManager.checkEquipCount(realCount, isNeedKey) { keyPair, lockMap ->
+                    if (keyPair == null) {
+                        Executor.runOnMain {
+                            val dialog = TipDialog(mContext!!)
+                            dialog.setTip(mContext!!.getString(R.string.no_key_available_dialog_tip))
+                            var state = 0
+                            dialog.setConfirmListener {
+                                state = 1
+                                handleGiveKey(ticketDetail, null, lockMap)
+                            }
+                            dialog.setOnCancelListener {
+                                state = 2
+                                BusinessManager.sendLoadingEventMsg(null, false)
+                            }
+                            dialog.setOnDismissListener {
+                                if (state == 0) {
                                     BusinessManager.sendLoadingEventMsg(null, false)
                                 }
-                                dialog.setOnDismissListener {
-                                    if (state == 0) {
-                                        BusinessManager.sendLoadingEventMsg(null, false)
-                                    }
-                                }
-                                dialog.show()
                             }
-                        } else {
-                            handleGiveKey(ticketDetail, keyPair, lockMap)
+                            dialog.show()
                         }
+                    } else {
+                        handleGiveKey(ticketDetail, keyPair, lockMap)
                     }
                 }
             } else {
@@ -187,7 +173,7 @@ class JobProgressPresenter : BasePresenter<IJobProgressView>() {
     fun handleUnlockProcess(ticketId: Long, keyRfid: String? = null) {
         getTicketDetail(ticketId) { ticketDetail ->
             LogUtil.i("getTicketDetail unlock: $ticketDetail")
-            val role = ticketDetail?.jobTicketUserList?.find { it.userId == SPUtils.getLoginUser(mContext!!)?.userId && it.userType == USER_TYPE_LOCKER }
+            val role = ticketDetail?.ticketUserVOList?.find { it.userId == SPUtils.getLoginUser(mContext!!)?.userId && it.userType == USER_TYPE_LOCKER }
             if (role == null) {
                 ToastUtils.tip(R.string.you_are_not_locker_tip)
                 BusinessManager.sendLoadingEventMsg(null, false)

+ 0 - 1
app/src/main/java/com/grkj/iscs/view/presenter/StepPresenter.kt

@@ -2,7 +2,6 @@ package com.grkj.iscs.view.presenter
 
 import com.grkj.iscs.R
 import com.grkj.iscs.model.vo.machinery.MachineryDetailRespVO
-import com.grkj.iscs.model.vo.machinery.MachineryPageRespVO
 import com.grkj.iscs.model.vo.map.MapInfoRespVO
 import com.grkj.iscs.model.vo.ticket.LotoMapRespVO
 import com.grkj.iscs.model.vo.ticket.StepDetailRespVO

+ 0 - 184
app/src/main/java/com/grkj/iscs/view/presenter/TicketDetailPresenter.kt

@@ -1,184 +0,0 @@
-package com.grkj.iscs.view.presenter
-
-import com.grkj.iscs.BusinessManager
-import com.grkj.iscs.R
-import com.grkj.iscs.view.base.BasePresenter
-import com.grkj.iscs.view.dialog.TipDialog
-import com.grkj.iscs.extentions.serialNo
-import com.grkj.iscs.view.iview.ITicketDetailView
-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.JOB_STATUS_READY_TO_LOCK
-import com.grkj.iscs.model.Constants.JOB_STATUS_READY_TO_UNLOCK
-import com.grkj.iscs.model.Constants.JOB_STATUS_UNLOCKED
-import com.grkj.iscs.model.Constants.USER_TYPE_COLOCKER
-import com.grkj.iscs.model.Constants.USER_TYPE_LOCKER
-import com.grkj.iscs.model.vo.lock.LockTakeUpdateReqVO
-import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
-import com.grkj.iscs.model.vo.ticket.TicketEquipDetailRespVO
-import com.grkj.iscs.util.Executor
-import com.grkj.iscs.util.NetApi
-import com.grkj.iscs.util.SPUtils
-import com.grkj.iscs.util.ToastUtils
-
-class TicketDetailPresenter : BasePresenter<ITicketDetailView>() {
-    /**
-     * 获取作业票详细信息
-     */
-    fun getTicketDetail(ticketId: Long?, callBack: (TicketDetailRespVO?) -> Unit) {
-        if (ticketId == null) {
-            ToastUtils.tip(mContext!!.resources.getString(R.string.ticket_id_is_null))
-            return
-        }
-        NetApi.getTicketDetail(ticketId) {
-            Executor.runOnMain {
-                callBack.invoke(it)
-            }
-        }
-    }
-
-    fun doAction(vo: TicketDetailRespVO?) {
-        val loginUser = SPUtils.getLoginUser(mContext!!)
-        if (loginUser == null) {
-            ToastUtils.tip(R.string.please_login)
-            return
-        }
-
-        if (vo?.ticketId == null) {
-            return
-        }
-
-        val roleList = vo.jobTicketUserList?.filter { it.userId == loginUser.userId }
-
-        // 都判断,防止身兼数职
-        if (roleList?.any { it.userType == USER_TYPE_LOCKER } == true) {
-            NetApi.getTicketEquipDetail(vo.ticketId) {
-                if (it == null) {
-                    return@getTicketEquipDetail
-                }
-                doLockAction(loginUser.userId!!, vo, it)
-            }
-        }
-        if (roleList?.any { it.userType == USER_TYPE_COLOCKER } == true) {
-            NetApi.getTicketEquipDetail(vo.ticketId) {
-                if (it == null) {
-                    return@getTicketEquipDetail
-                }
-                doCoLockerAction(loginUser.userId!!, vo, it)
-            }
-        }
-    }
-
-    /**
-     * 上锁人操作
-     */
-    private fun doLockAction(userId: Long, ticketDetail: TicketDetailRespVO, equipDetail: TicketEquipDetailRespVO) {
-        val role = ticketDetail.jobTicketUserList?.find { it.userId == userId && it.userType == USER_TYPE_LOCKER }
-        if (role == null) {
-            return
-        }
-
-        when(role.jobStatus) {
-            JOB_STATUS_NOT_STARTED, JOB_STATUS_ACQUIRE_LOCK -> {
-                // 取锁具、取钥匙
-                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, 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)
-////                                }
-//                            }
-//                        }
-//                    }
-//                }
-            }
-            JOB_STATUS_READY_TO_LOCK -> {
-                // TODO 不用做,由钥匙工作票自动更新
-            }
-            JOB_STATUS_READY_TO_UNLOCK -> {
-                // TODO 弹框,由钥匙工作票自动更新
-            }
-            JOB_STATUS_UNLOCKED -> {
-                ToastUtils.tip(R.string.ticket_is_locker_part_finished)
-            }
-        }
-    }
-
-    /**
-     * 共锁人操作
-     */
-    private fun doCoLockerAction(userId: Long, ticketDetail: TicketDetailRespVO, equipDetail: TicketEquipDetailRespVO) {
-        val role = ticketDetail.jobTicketUserList?.find { it.userId == userId && it.userType == USER_TYPE_COLOCKER }
-        if (role == null) {
-            return
-        }
-        when(role.jobStatus) {
-            JOB_STATUS_NOT_STARTED -> {
-                showTipDlg(mContext!!.getString(R.string.make_sure_to_colock)) {
-                    SPUtils.getLoginUser(mContext!!)?.userId?.let {
-                        NetApi.updateTicketProgress(ticketDetail.ticketId!!, it) {
-
-                        }
-                    }
-                }
-            }
-            JOB_STATUS_READY_TO_UNLOCK -> {
-                showTipDlg(mContext!!.getString(R.string.make_sure_to_unlock)) {
-                    SPUtils.getLoginUser(mContext!!)?.userId?.let {
-                        NetApi.updateTicketProgress(ticketDetail.ticketId!!, it) {
-
-                        }
-                    }
-                }
-            }
-            JOB_STATUS_UNLOCKED -> {
-                ToastUtils.tip(R.string.ticket_is_colocker_part_finished)
-            }
-        }
-    }
-
-    private fun showTipDlg(tip: String, callback: () -> Unit) {
-        val dlg = TipDialog(mContext!!)
-        dlg.setTip(tip)
-        dlg.setConfirmListener {
-            callback.invoke()
-        }
-        dlg.show()
-    }
-}