|
@@ -1,5 +1,6 @@
|
|
|
package com.grkj.iscs.presentation
|
|
package com.grkj.iscs.presentation
|
|
|
|
|
|
|
|
|
|
+import com.google.gson.Gson
|
|
|
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
|
|
@@ -69,7 +70,7 @@ 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:待上锁人解锁 6:已完成
|
|
|
|
|
|
|
+ var status: Int? = null, // 0:待上锁人上锁 1:部分共锁人上锁 2:待共锁人解锁 3:部分共锁人解锁 4:待上锁人解锁 5:已完成
|
|
|
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 // 安全员
|
|
@@ -77,7 +78,7 @@ object PresentationManager {
|
|
|
|
|
|
|
|
|
|
|
|
|
fun checkLocker(rfid: String): Int? {
|
|
fun checkLocker(rfid: String): Int? {
|
|
|
- val locker = workTicketList.find { it.locker?.rfid == rfid }
|
|
|
|
|
|
|
+ val locker = workTicketList.find { it.locker?.rfid == rfid }?.locker
|
|
|
if (locker == null) {
|
|
if (locker == null) {
|
|
|
return null
|
|
return null
|
|
|
}
|
|
}
|
|
@@ -103,36 +104,66 @@ object PresentationManager {
|
|
|
|
|
|
|
|
|
|
|
|
|
fun checkTogetherLocker(rfid: String): Int? {
|
|
fun checkTogetherLocker(rfid: String): Int? {
|
|
|
- val locker = workTicketList.find { itList -> itList.lockerTogetherList?.find { it.rfid == rfid } != null }
|
|
|
|
|
- if (locker == null) {
|
|
|
|
|
|
|
+ val pServerTicket = workTicketList.find { itList -> itList.lockerTogetherList?.find { it.rfid == rfid } != null }
|
|
|
|
|
+ if (pServerTicket == null) {
|
|
|
return null
|
|
return null
|
|
|
}
|
|
}
|
|
|
- return locker.lockerTogetherList?.find { it.rfid == rfid }?.status
|
|
|
|
|
|
|
+ val lockerStatus = pServerTicket.locker?.status
|
|
|
|
|
+ val togetherStatus = pServerTicket.lockerTogetherList?.find { it.rfid == rfid }?.status
|
|
|
|
|
+ if (lockerStatus == 0) {
|
|
|
|
|
+ return 100
|
|
|
|
|
+ }
|
|
|
|
|
+ return togetherStatus
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
fun updateWorkTicket(ticketStatusBean: WorkTicketStatusBean) {
|
|
fun updateWorkTicket(ticketStatusBean: WorkTicketStatusBean) {
|
|
|
- val list = findMatchingTickets(ticketStatusBean)
|
|
|
|
|
- if (list.isNotEmpty()) {
|
|
|
|
|
- val ticket = list.first()
|
|
|
|
|
|
|
+ val statusTicketList = ticketStatusBean.data
|
|
|
|
|
+ if (statusTicketList.isNullOrEmpty()) {
|
|
|
|
|
+ ToastUtils.tip("钥匙无工作票数据")
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- fun findMatchingTickets(ticketStatusBean: WorkTicketStatusBean): List<PServerTicket> {
|
|
|
|
|
- val matchingTickets = mutableListOf<PServerTicket>()
|
|
|
|
|
-
|
|
|
|
|
- // 获取 ticketStatusBean 中的所有 taskCode
|
|
|
|
|
- val taskCodes = ticketStatusBean.data?.map { it.taskCode }
|
|
|
|
|
-
|
|
|
|
|
- // 遍历 workTicketList
|
|
|
|
|
- for (ticket in workTicketList) {
|
|
|
|
|
- // 检查 ticket 的 workTicketBean 是否存在且包含相同的 taskCode
|
|
|
|
|
- ticket.workTicketBean?.data?.forEach { data ->
|
|
|
|
|
- if (taskCodes?.contains(data.taskCode) == true) {
|
|
|
|
|
- matchingTickets.add(ticket)
|
|
|
|
|
|
|
+ val taskCodeList = statusTicketList.map { it.taskCode }
|
|
|
|
|
+ val pServerTicket = workTicketList.find { it.workTicketBean?.data!!.any { taskCodeList.contains(it.taskCode) } }
|
|
|
|
|
+ val serverTicketList = pServerTicket?.workTicketBean?.data
|
|
|
|
|
+ if (serverTicketList.isNullOrEmpty()) {
|
|
|
|
|
+ ToastUtils.tip("无服务端工作票数据")
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ serverTicketList.forEach { itServerTicket ->
|
|
|
|
|
+ var isLockerDone = true
|
|
|
|
|
+ itServerTicket.dataList?.forEach { itServerTask ->
|
|
|
|
|
+ statusTicketList.forEach { itStatusTicket ->
|
|
|
|
|
+ itStatusTicket.dataList?.forEach { itStatusTask ->
|
|
|
|
|
+ if (itServerTask.equipRfidNo == itStatusTask.equipRfidNo) {
|
|
|
|
|
+ itServerTask.infoRfidNo = itStatusTask.infoRfidNo
|
|
|
|
|
+ if (itStatusTask.target == 0) {
|
|
|
|
|
+ itServerTask.target = 1
|
|
|
|
|
+ }
|
|
|
|
|
+ if (itStatusTask.closed == 0) {
|
|
|
|
|
+ isLockerDone = false
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ if (isLockerDone) {
|
|
|
|
|
+ updateLockerStatus(pServerTicket.locker!!.rfid!!, pServerTicket.locker!!.status!! + 1)
|
|
|
|
|
+ }
|
|
|
|
|
+ if (pServerTicket.locker?.status == 0) {
|
|
|
|
|
+ pServerTicket.status = 1
|
|
|
|
|
+ } else if (pServerTicket.locker?.status == 1) {
|
|
|
|
|
+ pServerTicket.status = 5
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- return matchingTickets
|
|
|
|
|
|
|
+ fun getTicketJson(): String {
|
|
|
|
|
+ val workTicketBean = workTicketList.find { it.workTicketBean?.cardNo == ticketCardNo && (it.status == 0 || it.status == 1) }?.workTicketBean
|
|
|
|
|
+ if (workTicketBean == null) {
|
|
|
|
|
+ ToastUtils.tip("暂无可处理的工作票")
|
|
|
|
|
+ }
|
|
|
|
|
+ return Gson().toJson(workTicketBean)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ var ticketCardNo = ""
|
|
|
}
|
|
}
|