|
@@ -3,11 +3,11 @@ package com.grkj.iscs.presentation
|
|
|
import android.view.Gravity
|
|
import android.view.Gravity
|
|
|
import android.widget.CheckBox
|
|
import android.widget.CheckBox
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
-import com.grkj.iscs.BusinessManager
|
|
|
|
|
import com.grkj.iscs.R
|
|
import com.grkj.iscs.R
|
|
|
import com.grkj.iscs.base.BaseMvpActivity
|
|
import com.grkj.iscs.base.BaseMvpActivity
|
|
|
import com.grkj.iscs.databinding.ActivityPresentationBinding
|
|
import com.grkj.iscs.databinding.ActivityPresentationBinding
|
|
|
import com.grkj.iscs.extentions.toHexStrings
|
|
import com.grkj.iscs.extentions.toHexStrings
|
|
|
|
|
+import com.grkj.iscs.modbus.DockBean
|
|
|
import com.grkj.iscs.modbus.ModBusController
|
|
import com.grkj.iscs.modbus.ModBusController
|
|
|
import com.grkj.iscs.model.DeviceConst
|
|
import com.grkj.iscs.model.DeviceConst
|
|
|
import com.grkj.iscs.model.WorkTicketBean
|
|
import com.grkj.iscs.model.WorkTicketBean
|
|
@@ -25,6 +25,7 @@ class PresentationActivity :
|
|
|
BaseMvpActivity<IPresentationView, PresentationPresenter, ActivityPresentationBinding>() {
|
|
BaseMvpActivity<IPresentationView, PresentationPresenter, ActivityPresentationBinding>() {
|
|
|
|
|
|
|
|
private var cardRfid: String? = null
|
|
private var cardRfid: String? = null
|
|
|
|
|
+ private var mSelectedSopIdx: Int? = null
|
|
|
|
|
|
|
|
override val viewBinding: ActivityPresentationBinding
|
|
override val viewBinding: ActivityPresentationBinding
|
|
|
get() = ActivityPresentationBinding.inflate(layoutInflater)
|
|
get() = ActivityPresentationBinding.inflate(layoutInflater)
|
|
@@ -35,6 +36,7 @@ class PresentationActivity :
|
|
|
mBinding?.siSop?.mOptionList = PresentationManager.mSopList.stream().map { it.sop }.collect(Collectors.toList())
|
|
mBinding?.siSop?.mOptionList = PresentationManager.mSopList.stream().map { it.sop }.collect(Collectors.toList())
|
|
|
mBinding?.siSop?.setOnSpinnerSelectListener(object : SelectableInput.OnSpinnerSelectListener {
|
|
mBinding?.siSop?.setOnSpinnerSelectListener(object : SelectableInput.OnSpinnerSelectListener {
|
|
|
override fun onSelect(str: String?, index: Int) {
|
|
override fun onSelect(str: String?, index: Int) {
|
|
|
|
|
+ mSelectedSopIdx = index
|
|
|
val sop = PresentationManager.mSopList[index]
|
|
val sop = PresentationManager.mSopList[index]
|
|
|
mBinding?.siWorkshop?.setText(sop.workshop)
|
|
mBinding?.siWorkshop?.setText(sop.workshop)
|
|
|
mBinding?.siLine?.setText(sop.line)
|
|
mBinding?.siLine?.setText(sop.line)
|
|
@@ -89,7 +91,6 @@ class PresentationActivity :
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private fun confirm() {
|
|
private fun confirm() {
|
|
|
- createWorkTicket()
|
|
|
|
|
// 蓝牙钥匙
|
|
// 蓝牙钥匙
|
|
|
val keyList = ModBusController.getKeyByDockType(DeviceConst.DOCK_TYPE_PORTABLE)
|
|
val keyList = ModBusController.getKeyByDockType(DeviceConst.DOCK_TYPE_PORTABLE)
|
|
|
if (keyList.isNullOrEmpty()) {
|
|
if (keyList.isNullOrEmpty()) {
|
|
@@ -111,40 +112,67 @@ class PresentationActivity :
|
|
|
ToastUtils.tip("没有找到移动柜")
|
|
ToastUtils.tip("没有找到移动柜")
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- val lockList = dockList[0].getLockList()
|
|
|
|
|
|
|
+ val lockList = dockList[0].getLockList().take(2)
|
|
|
if (lockList.isEmpty()) {
|
|
if (lockList.isEmpty()) {
|
|
|
ToastUtils.tip("没有找到移动柜的锁")
|
|
ToastUtils.tip("没有找到移动柜的锁")
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
+ if (lockList.size < 2) {
|
|
|
|
|
+ ToastUtils.tip("移动柜的锁数量不够2个")
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
val lockIdxList = lockList.map { it.idx } as MutableList
|
|
val lockIdxList = lockList.map { it.idx } as MutableList
|
|
|
ModBusController.controlLockBuckle(true, dockList[0].addr.toInt() - 1, lockIdxList) { res ->
|
|
ModBusController.controlLockBuckle(true, dockList[0].addr.toInt() - 1, lockIdxList) { res ->
|
|
|
LogUtil.i("confirm开锁卡扣 : ${res.toHexStrings()}")
|
|
LogUtil.i("confirm开锁卡扣 : ${res.toHexStrings()}")
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ createWorkTicket(lockList)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 创建工作票
|
|
* 创建工作票
|
|
|
*/
|
|
*/
|
|
|
- private fun createWorkTicket() {
|
|
|
|
|
|
|
+ private fun createWorkTicket(lockList: List<DockBean.LockBean>) {
|
|
|
|
|
+ if (mSelectedSopIdx == null) {
|
|
|
|
|
+ ToastUtils.tip("请选择SOP")
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
val ticket = WorkTicketBean()
|
|
val ticket = WorkTicketBean()
|
|
|
ticket.cardNo = cardRfid
|
|
ticket.cardNo = cardRfid
|
|
|
ticket.effectiveTime = 24
|
|
ticket.effectiveTime = 24
|
|
|
|
|
|
|
|
|
|
+ ticket.data = mutableListOf()
|
|
|
|
|
+
|
|
|
val dataDTO = WorkTicketBean.DataDTO()
|
|
val dataDTO = WorkTicketBean.DataDTO()
|
|
|
dataDTO.taskCode = SimpleDateFormat("yyyyMMddHHmm").format(Date(System.currentTimeMillis()))
|
|
dataDTO.taskCode = SimpleDateFormat("yyyyMMddHHmm").format(Date(System.currentTimeMillis()))
|
|
|
- dataDTO.taskId = SimpleDateFormat("yyyyMMddHHmmss").format(Date(System.currentTimeMillis()))
|
|
|
|
|
- dataDTO.codeId = 1
|
|
|
|
|
- val dataListDTO1 = WorkTicketBean.DataDTO.DataListDTO()
|
|
|
|
|
- dataListDTO1.dataId = 1
|
|
|
|
|
- ticket.data = mutableListOf(dataDTO)
|
|
|
|
|
|
|
+ dataDTO.codeId = PresentationManager.workTicketList.size + 1
|
|
|
|
|
+ dataDTO.dataList = mutableListOf()
|
|
|
|
|
+
|
|
|
|
|
+ val pointList = PresentationManager.mSopList[mSelectedSopIdx!!].pointList
|
|
|
|
|
+ for (i in pointList.indices) {
|
|
|
|
|
+ val dataListDTO = WorkTicketBean.DataDTO.DataListDTO()
|
|
|
|
|
+ dataListDTO.dataId = i
|
|
|
|
|
+ dataListDTO.equipRfidNo = pointList[i].rfid
|
|
|
|
|
+ dataListDTO.target = 0
|
|
|
|
|
+ if (i != 0) {
|
|
|
|
|
+ dataListDTO.prevId = i - 1
|
|
|
|
|
+ }
|
|
|
|
|
+ dataDTO.dataList?.add(dataListDTO)
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ ticket.data?.add(dataDTO)
|
|
|
|
|
|
|
|
- val lockListDTO = WorkTicketBean.LockListDTO()
|
|
|
|
|
- ticket.lockList = mutableListOf(lockListDTO)
|
|
|
|
|
|
|
+ ticket.lockList = mutableListOf()
|
|
|
|
|
+ for (i in lockList.indices) {
|
|
|
|
|
+ val lockListDTO = WorkTicketBean.LockListDTO()
|
|
|
|
|
+ lockListDTO.lockId = "${i + 1}"
|
|
|
|
|
+ lockListDTO.rfid = lockList[i].rfid
|
|
|
|
|
+ ticket.lockList?.add(lockListDTO)
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- PresentationManager.workTicketList.add(ticket)
|
|
|
|
|
|
|
+ PresentationManager.workTicketList.add(PresentationManager.PServerTicket(PresentationManager.workTicketList.size + 1, PresentationManager.mSopList[mSelectedSopIdx!!].sopId, ticket))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|