|
@@ -1,9 +1,12 @@
|
|
|
package com.grkj.iscs.presentation
|
|
package com.grkj.iscs.presentation
|
|
|
|
|
|
|
|
import com.google.gson.Gson
|
|
import com.google.gson.Gson
|
|
|
|
|
+import com.grkj.iscs.modbus.ModBusController
|
|
|
|
|
+import com.grkj.iscs.model.DeviceConst
|
|
|
import com.grkj.iscs.model.WorkTicketBean
|
|
import com.grkj.iscs.model.WorkTicketBean
|
|
|
import com.grkj.iscs.model.WorkTicketStatusBean
|
|
import com.grkj.iscs.model.WorkTicketStatusBean
|
|
|
import com.grkj.iscs.util.ToastUtils
|
|
import com.grkj.iscs.util.ToastUtils
|
|
|
|
|
+import com.grkj.iscs.util.log.LogUtil
|
|
|
|
|
|
|
|
object PresentationManager {
|
|
object PresentationManager {
|
|
|
|
|
|
|
@@ -55,13 +58,31 @@ object PresentationManager {
|
|
|
var workTicketList = mutableListOf<PServerTicket>()
|
|
var workTicketList = mutableListOf<PServerTicket>()
|
|
|
|
|
|
|
|
// 卡片信息
|
|
// 卡片信息
|
|
|
- data class PCardInfoBean(val rfid: String, val isLocker: Boolean)
|
|
|
|
|
|
|
+ data class PCardInfoBean(val rfid: String, val isLocker: Boolean) {
|
|
|
|
|
+ override fun toString(): String {
|
|
|
|
|
+ return "PCardInfoBean(rfid='$rfid', isLocker=$isLocker)"
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
// 上锁人
|
|
// 上锁人
|
|
|
- data class PLockerBean(val name: String, var rfid: String?, var status: Int?) // status:0待上锁 1待解锁 2已解锁
|
|
|
|
|
|
|
+ data class PLockerBean(val name: String, var rfid: String?, var status: Int?) { // status:0待上锁 1待解锁 2已解锁
|
|
|
|
|
+ override fun toString(): String {
|
|
|
|
|
+ return "PLockerBean(name='$name', rfid=$rfid, status=$status)"
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 共锁人
|
|
// 共锁人
|
|
|
- data class PLockerTogetherBean(var name: String? = null, var isChecked: Boolean = false, var rfid: String?, var status: Int?) // status:0待上锁 1待解锁 2已解锁
|
|
|
|
|
|
|
+ data class PLockerTogetherBean(var name: String? = null, var isChecked: Boolean = false, var rfid: String?, var status: Int?) { // status:0待上锁 1待解锁 2已解锁
|
|
|
|
|
+ override fun toString(): String {
|
|
|
|
|
+ return "PLockerTogetherBean(name=$name, isChecked=$isChecked, rfid=$rfid, status=$status)"
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 隔离点位
|
|
// 隔离点位
|
|
|
- data class PPointBean(var name: String? = null, var rfid: String? = null)
|
|
|
|
|
|
|
+ data class PPointBean(var name: String? = null, var rfid: String? = null) {
|
|
|
|
|
+ override fun toString(): String {
|
|
|
|
|
+ return "PPointBean(name=$name, rfid=$rfid)"
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
// 服务端工作票(完整)
|
|
// 服务端工作票(完整)
|
|
|
data class PServerTicket(
|
|
data class PServerTicket(
|
|
|
var ticketId: Int? = null,
|
|
var ticketId: Int? = null,
|
|
@@ -70,29 +91,26 @@ object PresentationManager {
|
|
|
var workTicketBean: WorkTicketBean? = null,
|
|
var workTicketBean: WorkTicketBean? = null,
|
|
|
var startTime: String? = null,
|
|
var startTime: String? = null,
|
|
|
var endTime: String? = null,
|
|
var endTime: String? = null,
|
|
|
- var status: Int? = null, // 0:待上锁人上锁 1:部分共锁人上锁 2:待共锁人解锁 3:部分共锁人解锁 4:待上锁人解锁 5:已完成
|
|
|
|
|
|
|
+ var status: Int? = null, // 0:待上锁人上锁 1:部分共锁人上锁 2:待共锁人解锁 3:部分共锁人解锁 4:待上锁人解锁 5:待归还设备 6:已完成
|
|
|
var locker: PLockerBean? = null, // 上锁人
|
|
var locker: PLockerBean? = null, // 上锁人
|
|
|
var lockerTogetherList: MutableList<PLockerTogetherBean>? = null, // 共锁人
|
|
var lockerTogetherList: MutableList<PLockerTogetherBean>? = null, // 共锁人
|
|
|
- var safety: String? = null // 安全员
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ var safety: String? = null, // 安全员
|
|
|
|
|
+ var isAllLocksReturned: Boolean = false // 是否归还所有锁具
|
|
|
|
|
+ ) {
|
|
|
|
|
+ override fun toString(): String {
|
|
|
|
|
+ return "PServerTicket(ticketId=$ticketId, sopId=$sopId, sop=$sop, workTicketBean=$workTicketBean, startTime=$startTime, endTime=$endTime, status=$status, locker=$locker, lockerTogetherList=$lockerTogetherList, safety=$safety)"
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
fun checkLocker(rfid: String): Int? {
|
|
fun checkLocker(rfid: String): Int? {
|
|
|
- val locker = workTicketList.find { it.locker?.rfid == rfid }?.locker
|
|
|
|
|
|
|
+ val locker = workTicketList.find { it.locker?.rfid == rfid && it.status != 6 }?.locker
|
|
|
if (locker == null) {
|
|
if (locker == null) {
|
|
|
return null
|
|
return null
|
|
|
}
|
|
}
|
|
|
return locker.status
|
|
return locker.status
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- fun updateLockerStatus(rfid: String, rst: Int) {
|
|
|
|
|
- if (rst == 1 || rst == 0) {
|
|
|
|
|
- workTicketList.find { it.locker?.rfid == rfid }?.locker?.status == rst + 1
|
|
|
|
|
- } else {
|
|
|
|
|
- ToastUtils.tip("未知上锁人状态更新")
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
fun updateTogetherLockerStatus(rfid: String, rst: Int) {
|
|
fun updateTogetherLockerStatus(rfid: String, rst: Int) {
|
|
|
if (rst == 1 || rst == 0) {
|
|
if (rst == 1 || rst == 0) {
|
|
|
workTicketList.find { it.lockerTogetherList?.find { it.rfid == rfid } != null }?.lockerTogetherList?.find { it.rfid == rfid }?.status = rst + 1
|
|
workTicketList.find { it.lockerTogetherList?.find { it.rfid == rfid } != null }?.lockerTogetherList?.find { it.rfid == rfid }?.status = rst + 1
|
|
@@ -117,6 +135,8 @@ object PresentationManager {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
fun updateWorkTicket(ticketStatusBean: WorkTicketStatusBean) {
|
|
fun updateWorkTicket(ticketStatusBean: WorkTicketStatusBean) {
|
|
|
|
|
+ println("updateWorkTicket1 : $ticketStatusBean")
|
|
|
|
|
+ println("updateWorkTicket2 : $workTicketList")
|
|
|
val statusTicketList = ticketStatusBean.data
|
|
val statusTicketList = ticketStatusBean.data
|
|
|
if (statusTicketList.isNullOrEmpty()) {
|
|
if (statusTicketList.isNullOrEmpty()) {
|
|
|
ToastUtils.tip("钥匙无工作票数据")
|
|
ToastUtils.tip("钥匙无工作票数据")
|
|
@@ -141,20 +161,30 @@ object PresentationManager {
|
|
|
}
|
|
}
|
|
|
if (itStatusTask.closed == 0) {
|
|
if (itStatusTask.closed == 0) {
|
|
|
isLockerDone = false
|
|
isLockerDone = false
|
|
|
|
|
+ println("测试打印 : 有未完成的")
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (isLockerDone) {
|
|
|
|
|
- updateLockerStatus(pServerTicket.locker!!.rfid!!, pServerTicket.locker!!.status!! + 1)
|
|
|
|
|
- }
|
|
|
|
|
if (pServerTicket.locker?.status == 0) {
|
|
if (pServerTicket.locker?.status == 0) {
|
|
|
pServerTicket.status = 1
|
|
pServerTicket.status = 1
|
|
|
} else if (pServerTicket.locker?.status == 1) {
|
|
} else if (pServerTicket.locker?.status == 1) {
|
|
|
- pServerTicket.status = 5
|
|
|
|
|
|
|
+ if (pServerTicket.isAllLocksReturned) {
|
|
|
|
|
+ pServerTicket.status = 6
|
|
|
|
|
+ } else {
|
|
|
|
|
+ pServerTicket.status = 5
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (isLockerDone) {
|
|
|
|
|
+ println("测试打印 : 上锁人状态 - ${pServerTicket.locker?.status}")
|
|
|
|
|
+ if (pServerTicket.locker?.status == 0 || pServerTicket.locker?.status == 1) {
|
|
|
|
|
+ pServerTicket.locker?.status = pServerTicket.locker!!.status!! + 1
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ println("updateWorkTicket3 : $workTicketList")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
fun getTicketJson(): String {
|
|
fun getTicketJson(): String {
|
|
@@ -162,8 +192,37 @@ object PresentationManager {
|
|
|
if (workTicketBean == null) {
|
|
if (workTicketBean == null) {
|
|
|
ToastUtils.tip("暂无可处理的工作票")
|
|
ToastUtils.tip("暂无可处理的工作票")
|
|
|
}
|
|
}
|
|
|
- return Gson().toJson(workTicketBean)
|
|
|
|
|
|
|
+ val jsonStr = Gson().toJson(workTicketBean)
|
|
|
|
|
+ LogUtil.i("getTicketJson : $jsonStr")
|
|
|
|
|
+ return jsonStr
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var ticketCardNo = ""
|
|
var ticketCardNo = ""
|
|
|
|
|
+
|
|
|
|
|
+ fun updateLockReturnStatus(rfid: String) {
|
|
|
|
|
+ val pServerTicket = workTicketList.find { it.workTicketBean?.data!!.any { it.dataList!!.any { it.infoRfidNo == rfid } } }
|
|
|
|
|
+ pServerTicket?.let {
|
|
|
|
|
+ val dockList = ModBusController.getDockByType(DeviceConst.DOCK_TYPE_PORTABLE)
|
|
|
|
|
+ if (dockList.isEmpty()) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ val dockLockRfidList = dockList[0].getLockList().map { it.rfid }
|
|
|
|
|
+
|
|
|
|
|
+ val ticketLockRfidList = mutableListOf<String?>()
|
|
|
|
|
+
|
|
|
|
|
+ // 遍历 data 列表
|
|
|
|
|
+ it.workTicketBean?.data?.forEach { dataDto ->
|
|
|
|
|
+ // 遍历 dataList 列表
|
|
|
|
|
+ dataDto.dataList?.forEach { dataListDto ->
|
|
|
|
|
+ // 添加 infoRfidNo 到集合中
|
|
|
|
|
+ ticketLockRfidList.add(dataListDto.infoRfidNo)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ it.isAllLocksReturned = ticketLockRfidList.containsAll(dockLockRfidList)
|
|
|
|
|
+ if (it.isAllLocksReturned && it.status == 5) {
|
|
|
|
|
+ ToastUtils.tip("工作票已完成")
|
|
|
|
|
+ it.status = 6
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|