左晓为主开发手持机充值管理机
zuoxiao
21 小时以前 ec09d4bcd191496272099c2ab31d097ad630ee78
generallibrary/src/main/java/com/dayu/general/bean/card/UserCard.kt
@@ -17,10 +17,10 @@
    var userCodeNumber: Int = 0 // 用户卡编号(HEX)
    var phoneNumber: String = "" // 手机号(BCD)
    var projectCode: Int = 0 // 项目编码(HEX 1-255)
    var balance: Int = 0 // 剩余金额(2位小数点,单位元)
    var balance: Int = 0 // 剩余金额(2位小数点,单位分)
    var surplusWater: Int = 0 // 剩余水量(2位小数点,单位立方米)
    var waterPrice: Float = 0f // 水量单价(最大655.35,2位小数点。单位:m3/元)
    var electricPrice: Float = 0f // 电量单价(最大655.35,2位小数点。单位: 元/度)
    var waterPrice: Int = 0 // 水量单价(2位小数点,单位分/m3)
    var electricPrice: Int = 0 // 电量单价(2位小数点,单位分/度)
    var rechargeDate: Calendar? = null // 充值时间
    /**
@@ -74,7 +74,7 @@
                projectCode = HexUtil.get16To10LowHightByBytes(byteArrayOf(one[0]))
                balance = HexUtil.get16To10LowHightByBytes(one.copyOfRange(1, 5))
                surplusWater = HexUtil.get16To10LowHightByBytes(one.copyOfRange(5, 9))
                electricPrice = HexUtil.hexToFloatLowHigh(one.copyOfRange(9, 11))
                electricPrice = HexUtil.get16To10LowHightByBytes(one.copyOfRange(9, 11))
                // 解析充值时间
                val year = HexUtil.getBcdToInt(one[11])
@@ -90,7 +90,7 @@
            // 解析第2块
            val two = data[2]
            userCard.apply {
                waterPrice = HexUtil.hexToFloatLowHigh(two.copyOfRange(9, 11))
                waterPrice = HexUtil.get16To10LowHightByBytes(two.copyOfRange(9, 11))
            }
            return userCard
@@ -157,10 +157,11 @@
                System.arraycopy(waterPadded, 0, data, 5, 4)
                // 设置电价 - 修复:确保数组长度正确
                val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice))
                val pricePadded = ByteArray(2)
                System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
                System.arraycopy(pricePadded, 0, data, 9, 2)
                val electricPriceHex = HexUtil.get10To16LowHigh(electricPrice)
                val electricPriceBytes = HexUtil.hexToByteArray(electricPriceHex)
                val electricPricePadded = ByteArray(2)
                System.arraycopy(electricPriceBytes, 0, electricPricePadded, 0, minOf(electricPriceBytes.size, 2))
                System.arraycopy(electricPricePadded, 0, data, 9, 2)
                // 设置充值时间
                rechargeDate?.let {
@@ -196,10 +197,11 @@
                System.arraycopy(waterPadded, 0, data, 5, 4)
                // 设置水价 - 修复:确保数组长度正确
                val priceBytes = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(waterPrice))
                val pricePadded = ByteArray(2)
                System.arraycopy(priceBytes, 0, pricePadded, 0, minOf(priceBytes.size, 2))
                System.arraycopy(pricePadded, 0, data, 9, 2)
                val waterPriceHex = HexUtil.get10To16LowHigh(waterPrice)
                val waterPriceBytes = HexUtil.hexToByteArray(waterPriceHex)
                val waterPricePadded = ByteArray(2)
                System.arraycopy(waterPriceBytes, 0, waterPricePadded, 0, minOf(waterPriceBytes.size, 2))
                System.arraycopy(waterPricePadded, 0, data, 9, 2)
                // 设置充值时间
                rechargeDate?.let {