|
|
@@ -0,0 +1,72 @@
|
|
|
+package com.iscs.comm.entity.device.status.bean
|
|
|
+
|
|
|
+/**
|
|
|
+ * 锁仓基础字段构造
|
|
|
+ *
|
|
|
+ * @param ch 当前仓位ID
|
|
|
+ * @param isUsed 仓位是否使用的 true 被用 false 未使用
|
|
|
+ * @param isSlotLock 仓位是否锁定
|
|
|
+ * @param isWorked 是否工作的
|
|
|
+ */
|
|
|
+open class Slot(
|
|
|
+ open var ch: Int = -1,
|
|
|
+ open var isUsed: Boolean = false,
|
|
|
+ open var isSlotLock: Boolean = false,
|
|
|
+ open var isWorked: Boolean = false,
|
|
|
+ open var rfid: String = ""
|
|
|
+) {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 上一次状态
|
|
|
+ */
|
|
|
+ internal var lastStatus: MutableMap<String, Any> =
|
|
|
+ mutableMapOf("isUsed" to isUsed, "isSlotLock" to isSlotLock, "isWorked" to isWorked, "rfid" to rfid)
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新上一次状态
|
|
|
+ */
|
|
|
+ internal fun updateStatus() {
|
|
|
+ lastStatus = mutableMapOf("isUsed" to isUsed, "isSlotLock" to isSlotLock, "isWorked" to isWorked, "rfid" to rfid)
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否状态发生变化
|
|
|
+ */
|
|
|
+ open fun isChanged(): Boolean {
|
|
|
+ return isUsedChanged() || isSlotLockChanged() || isWorkedChanged() || isRfidChanged()
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 槽位状态是否变化
|
|
|
+ */
|
|
|
+ fun isUsedChanged(): Boolean {
|
|
|
+ return lastStatus["isUsed"] as Boolean != isUsed
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 槽位卡扣是否锁住
|
|
|
+ */
|
|
|
+ fun isSlotLockChanged(): Boolean {
|
|
|
+ return lastStatus["isSlotLock"] as Boolean != isSlotLock
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 槽位是否正常工作
|
|
|
+ */
|
|
|
+ fun isWorkedChanged(): Boolean {
|
|
|
+ return lastStatus["isWorked"] as Boolean != isWorked
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * rfid是否发生变化
|
|
|
+ */
|
|
|
+ fun isRfidChanged(): Boolean {
|
|
|
+ return lastStatus["rfid"] as String != rfid
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun toString(): String {
|
|
|
+ return "SlotBean(ch: $ch, isUsed: $isUsed, isSlotLock: $isSlotLock, isWorked: $isWorked, rfid: $rfid)"
|
|
|
+ }
|
|
|
+
|
|
|
+}
|