|
|
@@ -7,9 +7,11 @@ import com.grkj.iscs.databinding.FragmentWorkerBinding
|
|
|
import com.grkj.iscs.model.Constants.USER_ROLE_COLOCKER
|
|
|
import com.grkj.iscs.model.Constants.USER_ROLE_LOCKER
|
|
|
import com.grkj.iscs.model.bo.PageChangeBO
|
|
|
+import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
|
|
|
import com.grkj.iscs.model.vo.ticket.TicketUserReqVO
|
|
|
import com.grkj.iscs.model.vo.user.UserListRespVO
|
|
|
import com.grkj.iscs.util.SPUtils
|
|
|
+import com.grkj.iscs.util.ToastUtils
|
|
|
import com.grkj.iscs.view.base.BaseMvpFragment
|
|
|
import com.grkj.iscs.view.iview.IWorkerView
|
|
|
import com.grkj.iscs.view.presenter.WorkerPresenter
|
|
|
@@ -23,11 +25,13 @@ 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 mLockerList = mutableListOf<UserListRespVO.Row>()
|
|
|
private val mColockerInsideList = mutableListOf<UserListRespVO.Row>()
|
|
|
private val mColockerOutsideList = mutableListOf<UserListRespVO.Row>()
|
|
|
private var mPageChangeBO: PageChangeBO? = null
|
|
|
+ private var mStep: Int = 0
|
|
|
|
|
|
override val viewBinding: FragmentWorkerBinding
|
|
|
get() = FragmentWorkerBinding.inflate(layoutInflater)
|
|
|
@@ -37,6 +41,9 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
|
|
|
|
|
|
mBinding?.cbCancel?.setOnClickListener { goBack() }
|
|
|
mBinding?.cbConfirm?.setOnClickListener {
|
|
|
+ if (!checkUpdate()) {
|
|
|
+ return@setOnClickListener
|
|
|
+ }
|
|
|
presenter?.updateTicketUser(mPageChangeBO?.ticketId!!, mSelectedList) {
|
|
|
if (it) { goBack() }
|
|
|
}
|
|
|
@@ -143,6 +150,8 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
|
|
|
}
|
|
|
|
|
|
override fun refreshPage(pageChangeBO: PageChangeBO) {
|
|
|
+ mStep = 0
|
|
|
+ mOriginalUserList.clear()
|
|
|
mSelectedList.clear()
|
|
|
mColockerSelectedShowList.clear()
|
|
|
mLockerList.clear()
|
|
|
@@ -166,8 +175,7 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
|
|
|
if (it?.jobTicketUserList.isNullOrEmpty()) {
|
|
|
return@getTicketDetail
|
|
|
}
|
|
|
- mSelectedList.clear()
|
|
|
- mColockerSelectedShowList.clear()
|
|
|
+ it?.jobTicketUserList?.let { it1 -> mOriginalUserList.addAll(it1) }
|
|
|
it?.jobTicketUserList?.forEach { user ->
|
|
|
if (user.userRole == USER_ROLE_LOCKER) {
|
|
|
mBinding?.layoutLocker?.root?.visibility = View.VISIBLE
|
|
|
@@ -227,7 +235,33 @@ class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> U
|
|
|
presenter?.getStepDetail(pageChangeBO.ticketId!!) {
|
|
|
mBinding?.tvWorker?.text = "${it?.get(2)?.userNum}/${it?.get(4)?.userNum}/${it?.get(7)?.userNum}"
|
|
|
mBinding?.tvLock?.text = "${it?.get(2)?.lockNum}/${it?.get(4)?.lockNum}/${it?.get(7)?.lockNum}"
|
|
|
+
|
|
|
+ it?.filter { it.stepStatus == "1" }?.maxByOrNull { it.stepIndex!! }?.stepIndex?.let {
|
|
|
+ mStep = it
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * step4做完就不能改上锁人,step6做之前可改共锁人
|
|
|
+ */
|
|
|
+ private fun checkUpdate(): Boolean {
|
|
|
+ if (mStep == 0) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if (mStep >= 4) {
|
|
|
+ val originLocker = mOriginalUserList.find { it.userRole == USER_ROLE_LOCKER }
|
|
|
+ val selectedLocker = mSelectedList.find { it.userRole == USER_ROLE_LOCKER }
|
|
|
+ if (originLocker != null && selectedLocker != null && originLocker.userId != selectedLocker.userId) {
|
|
|
+ ToastUtils.tip(R.string.can_not_change_locker)
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if (mStep >= 6) {
|
|
|
+ ToastUtils.tip(R.string.can_not_change_colocker)
|
|
|
+ return false
|
|
|
+ }
|
|
|
}
|
|
|
+ return true
|
|
|
}
|
|
|
|
|
|
override fun initPresenter(): WorkerPresenter {
|