package com.dayu.general.activity
|
|
import android.os.Bundle
|
import com.dayu.baselibrary.tools.print.PrintAdater
|
import com.dayu.baselibrary.utils.DateUtil
|
import com.dayu.baselibrary.utils.MornyUtil
|
import com.dayu.general.BaseApplication
|
import com.dayu.general.bean.card.UserCard
|
import com.dayu.general.bean.net.CardInfoResult
|
import com.dayu.general.databinding.ActivityCardWriteSuccessBinding
|
import com.dayu.general.tool.CardOperationType
|
|
/**
|
* @author: zuo
|
* @date: 2024/12/19
|
* @description: 写卡成功页面
|
*/
|
class CardWriteSuccessActivity : BaseActivity() {
|
|
private lateinit var binding: ActivityCardWriteSuccessBinding
|
private var cardNumber: String? = null
|
private var cardAddr: String? = null
|
private var operationTypeCode: Int = -1
|
private var userCard: UserCard? = null
|
private var orderNumber: String? = null
|
private var cardInfo: CardInfoResult? = null
|
|
// 充值相关参数
|
private var rechargeAmount = 0.0
|
private var bonusAmount = 0.0
|
|
// 其他操作相关参数
|
private var refundAmount = 0.0
|
private var cardBalance = 0.0
|
private var returnAmount = 0.0
|
private var deductAmount = 0.0
|
private var cardCost = 0.0
|
private var reissueAmount = 0.0
|
private var cardFee = 0
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
binding = ActivityCardWriteSuccessBinding.inflate(layoutInflater)
|
setContentView(binding.root)
|
|
// 获取传入的卡号和操作类型
|
cardNumber = intent.getStringExtra("cardNumber")
|
cardAddr = intent.getStringExtra("cardAddr")
|
operationTypeCode = intent.getIntExtra("operationTypeCode", -1)
|
orderNumber = intent.getStringExtra("orderNumber")
|
|
cardFee = intent.getIntExtra("cardFee", 0);
|
|
// 获取充值相关参数
|
rechargeAmount = intent.getDoubleExtra("rechargeAmount", 0.0)
|
bonusAmount = intent.getDoubleExtra("bonusAmount", 0.0)
|
|
// 获取其他操作相关参数
|
refundAmount = intent.getDoubleExtra("refundAmount", 0.0)
|
cardBalance = intent.getDoubleExtra("cardBalance", 0.0)
|
returnAmount = intent.getDoubleExtra("returnAmount", 0.0)
|
deductAmount = intent.getDoubleExtra("deductAmount", 0.0)
|
cardCost = intent.getDoubleExtra("cardCost", 0.0)
|
reissueAmount = intent.getDoubleExtra("reissueAmount", 0.0)
|
|
if (intent.hasExtra("userCard")) {
|
userCard = intent.getSerializableExtra("userCard") as UserCard
|
}
|
|
if (intent.hasExtra("cardInfo")) {
|
cardInfo = intent.getSerializableExtra("cardInfo") as CardInfoResult
|
}
|
|
initView()
|
}
|
|
private fun initView() {
|
val operationType = CardOperationType.fromCode(operationTypeCode)
|
|
// 根据操作类型设置不同的标题和信息
|
when (operationType) {
|
CardOperationType.CancelCard -> {
|
// 设置标题
|
binding.titleBar.setCenterText("销卡成功")
|
|
// 设置成功信息
|
binding.successTitle.text = "销卡成功"
|
|
// 设置详细信息
|
val message = if (cardNumber.isNullOrBlank()) {
|
"卡片已成功销卡并清除内容\n该卡片将无法再次使用"
|
} else {
|
"卡片已成功销卡并清除内容\n卡号:$cardNumber\n该卡片将无法再次使用"
|
}
|
binding.successMessage.text = message
|
|
// 销卡成功后自动打印
|
userCard?.let { card ->
|
doPrint(card)
|
}
|
}
|
|
CardOperationType.SUPPLEMENT -> {
|
// 设置标题
|
binding.titleBar.setCenterText("返还成功")
|
|
// 设置成功信息
|
binding.successTitle.text = "返还成功"
|
|
// 设置详细信息
|
val message = if (cardNumber.isNullOrBlank()) {
|
"卡片返还操作已成功完成\n卡内余额已更新"
|
} else {
|
"卡片返还操作已成功完成\n卡号:$cardNumber\n卡内余额已更新"
|
}
|
binding.successMessage.text = message
|
|
// 返还成功后自动打印
|
userCard?.let { card ->
|
doPrint(card)
|
}
|
}
|
|
CardOperationType.DeductCard -> {
|
// 设置标题
|
binding.titleBar.setCenterText("补扣成功")
|
|
// 设置成功信息
|
binding.successTitle.text = "补扣成功"
|
|
// 设置详细信息
|
val message = if (cardNumber.isNullOrBlank()) {
|
"卡片补扣操作已成功完成\n卡内余额已更新"
|
} else {
|
"卡片补扣操作已成功完成\n卡号:$cardNumber\n卡内余额已更新"
|
}
|
binding.successMessage.text = message
|
|
// 补扣成功后自动打印
|
userCard?.let { card ->
|
doPrint(card)
|
}
|
}
|
|
CardOperationType.ReplaceCard -> {
|
// 设置标题
|
binding.titleBar.setCenterText("补卡成功")
|
|
// 设置成功信息
|
binding.successTitle.text = "补卡成功"
|
|
// 设置详细信息
|
val message = if (cardNumber.isNullOrBlank()) {
|
"补卡操作已成功完成\n新卡已写入数据,可正常使用"
|
} else {
|
"补卡操作已成功完成\n卡号:$cardNumber\n新卡已写入数据,可正常使用"
|
}
|
binding.successMessage.text = message
|
}
|
|
CardOperationType.Recharge -> {
|
binding.titleBar.setCenterText("充值成功")
|
binding.successTitle.text = "充值成功"
|
|
val messageBuilder = StringBuilder()
|
messageBuilder.append("充值操作已成功完成\n")
|
|
if (rechargeAmount > 0) {
|
messageBuilder.append("充值金额:${String.format("%.2f", rechargeAmount)}元\n")
|
}
|
|
if (bonusAmount > 0) {
|
messageBuilder.append("赠送金额:${String.format("%.2f", bonusAmount)}元\n")
|
}
|
|
messageBuilder.append("卡内余额:${MornyUtil.changeF2Y(userCard?.balance ?: 0)}元")
|
|
binding.successMessage.text = messageBuilder.toString()
|
|
// 充值成功后自动打印
|
userCard?.let { card ->
|
doPrint(card)
|
}
|
}
|
|
CardOperationType.OpenCard -> {
|
binding.titleBar.setCenterText("开卡成功")
|
binding.successTitle.text = "开卡成功"
|
val messageBuilder = StringBuilder()
|
if (rechargeAmount > 0) {
|
messageBuilder.append("充值金额:${String.format("%.2f", rechargeAmount)}元\n")
|
}
|
messageBuilder.append("卡内余额:${MornyUtil.changeF2Y(userCard?.balance ?: 0)}元")
|
// 充值成功后自动打印
|
userCard?.let { card ->
|
doPrint(card)
|
}
|
}
|
|
else -> {
|
// 默认显示写卡成功
|
binding.titleBar.setCenterText("写卡成功")
|
binding.successTitle.text = "写卡成功"
|
|
val message = if (cardNumber.isNullOrBlank()) {
|
"卡片操作已成功完成"
|
} else {
|
"卡片操作已成功完成\n卡号:$cardNumber"
|
}
|
binding.successMessage.text = message
|
}
|
}
|
|
// 设置点击确定按钮后关闭页面
|
binding.btnConfirm.setOnClickListener {
|
finish()
|
}
|
|
// 设置再次打印按钮点击监听器
|
binding.btnReprint.setOnClickListener {
|
userCard?.let { card ->
|
doPrint(card)
|
}
|
}
|
|
// 设置标题栏返回按钮
|
binding.titleBar.setOnItemclickListner(com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE) {
|
finish()
|
}
|
}
|
|
/**
|
* 打印充值成功信息到打印机
|
* @param userCard 用户卡片信息,包含余额等信息
|
* 函数会构建打印数据并调用打印适配器进行打印
|
*/
|
private fun doPrint(userCard: UserCard) {
|
try {
|
// 创建打印数据列表
|
val data: MutableList<String> = ArrayList()
|
|
// 根据操作类型设置不同的打印内容
|
val operationType = CardOperationType.fromCode(operationTypeCode)
|
|
when (operationType) {
|
CardOperationType.Recharge -> {
|
// 充值打印内容
|
data.add("*****************************")
|
data.add(" 充值凭证")
|
data.add("*****************************")
|
|
// 添加用户名(从CardInfo中获取)
|
cardInfo?.userName?.let { userName ->
|
if (userName.isNotEmpty()) {
|
data.add("用户姓名:$userName")
|
}
|
}
|
|
// 添加卡地址
|
val cardAddress = cardNumber ?: cardAddr
|
if (!cardAddress.isNullOrEmpty()) {
|
data.add("卡 地 址:$cardAddress")
|
}
|
|
// 添加用户编号(从UserCard中获取)
|
if (!userCard.userCode.isNullOrEmpty()) {
|
data.add("用户编号:${userCard.getMyUserCode()}")
|
}
|
|
// 添加充值金额
|
if (rechargeAmount > 0) {
|
data.add("充值金额:${String.format("%.2f", rechargeAmount)} 元")
|
}
|
|
// 添加赠送金额
|
if (bonusAmount > 0) {
|
data.add("赠送金额:${String.format("%.2f", bonusAmount)} 元")
|
}
|
|
// 添加充值后余额
|
data.add("充值后余额:${MornyUtil.changeF2Y(userCard.balance)} 元")
|
|
// 添加订单号
|
if (!orderNumber.isNullOrEmpty()) {
|
data.add("订单号:$orderNumber")
|
}
|
|
// 添加设备操作员信息
|
data.add("设备操作员:${BaseApplication.userName}")
|
// 添加日期信息
|
data.add(
|
"日 期:${
|
DateUtil.dateToStamp(
|
System.currentTimeMillis(),
|
DateUtil.type2
|
)
|
}"
|
)
|
data.add("*****************************")
|
}
|
|
CardOperationType.ReplaceCard -> {
|
// 补卡打印内容
|
data.add("*****************************")
|
data.add(" 补卡凭证")
|
data.add("*****************************")
|
|
// 添加用户名(从CardInfo中获取)
|
cardInfo?.userName?.let { userName ->
|
if (userName.isNotEmpty()) {
|
data.add("用户姓名:$userName")
|
}
|
}
|
|
val cardAddress = cardNumber ?: cardAddr
|
if (!cardAddress.isNullOrEmpty()) {
|
data.add("卡 地 址:$cardAddress")
|
}
|
|
if (!userCard.userCode.isNullOrEmpty()) {
|
data.add("用户编号:${userCard.getMyUserCode()}")
|
}
|
|
if (cardCost > 0) {
|
data.add("工 本 费:${String.format("%.2f", cardCost)} 元")
|
}
|
|
if (reissueAmount > 0) {
|
data.add("返还金额:${String.format("%.2f", reissueAmount)} 元")
|
}
|
|
data.add("卡内余额:${MornyUtil.changeF2Y(userCard.balance)} 元")
|
if (!orderNumber.isNullOrEmpty()) {
|
data.add("订单号:$orderNumber")
|
}
|
|
data.add("设备操作员:${BaseApplication.userName}")
|
data.add(
|
"日 期:${
|
DateUtil.dateToStamp(
|
System.currentTimeMillis(),
|
DateUtil.type2
|
)
|
}"
|
)
|
data.add("*****************************")
|
}
|
|
CardOperationType.CancelCard -> {
|
// 销卡打印内容
|
data.add("*****************************")
|
data.add(" 销卡凭证")
|
data.add("*****************************")
|
|
// 添加用户名(从CardInfo中获取)
|
cardInfo?.userName?.let { userName ->
|
if (userName.isNotEmpty()) {
|
data.add("用户姓名:$userName")
|
}
|
}
|
|
val cardAddress = cardNumber ?: cardAddr
|
if (!cardAddress.isNullOrEmpty()) {
|
data.add("卡 地 址:$cardAddress")
|
}
|
|
if (!userCard.userCode.isNullOrEmpty()) {
|
data.add("用户编号:${userCard.getMyUserCode()}")
|
}
|
|
if (refundAmount > 0) {
|
data.add("退款金额:${String.format("%.2f", refundAmount)} 元")
|
}
|
|
data.add("原卡余额:${String.format("%.2f", cardBalance)} 元")
|
|
|
if (!orderNumber.isNullOrEmpty()) {
|
data.add("订单号:$orderNumber")
|
}
|
|
data.add("设备操作员:${BaseApplication.userName}")
|
data.add(
|
"日 期:${
|
DateUtil.dateToStamp(
|
System.currentTimeMillis(),
|
DateUtil.type2
|
)
|
}"
|
)
|
data.add("*****************************")
|
}
|
|
CardOperationType.SUPPLEMENT -> {
|
// 返还打印内容
|
data.add("*****************************")
|
data.add(" 返还凭证")
|
data.add("*****************************")
|
|
// 添加用户名(从CardInfo中获取)
|
cardInfo?.userName?.let { userName ->
|
if (userName.isNotEmpty()) {
|
data.add("用户姓名:$userName")
|
}
|
}
|
|
val cardAddress = cardNumber ?: cardAddr
|
if (!cardAddress.isNullOrEmpty()) {
|
data.add("卡 地 址:$cardAddress")
|
}
|
|
if (!userCard.userCode.isNullOrEmpty()) {
|
data.add("用户编号:${userCard.getMyUserCode()}")
|
}
|
|
if (returnAmount > 0) {
|
data.add("返还金额:${String.format("%.2f", returnAmount)} 元")
|
}
|
|
data.add("卡内余额:${MornyUtil.changeF2Y(userCard.balance)} 元")
|
|
|
if (!orderNumber.isNullOrEmpty()) {
|
data.add("订单号:$orderNumber")
|
}
|
|
data.add("设备操作员:${BaseApplication.userName}")
|
data.add(
|
"日 期:${
|
DateUtil.dateToStamp(
|
System.currentTimeMillis(),
|
DateUtil.type2
|
)
|
}"
|
)
|
data.add("*****************************")
|
}
|
|
CardOperationType.DeductCard -> {
|
// 补扣打印内容
|
data.add("*****************************")
|
data.add(" 补扣凭证")
|
data.add("*****************************")
|
|
// 添加用户名(从CardInfo中获取)
|
cardInfo?.userName?.let { userName ->
|
if (userName.isNotEmpty()) {
|
data.add("用户姓名:$userName")
|
}
|
}
|
|
val cardAddress = cardNumber ?: cardAddr
|
if (!cardAddress.isNullOrEmpty()) {
|
data.add("卡 地 址:$cardAddress")
|
}
|
|
if (!userCard.userCode.isNullOrEmpty()) {
|
data.add("用户编号:${userCard.getMyUserCode()}")
|
}
|
|
if (deductAmount > 0) {
|
data.add("补扣金额:${String.format("%.2f", deductAmount)} 元")
|
}
|
|
data.add("卡内余额:${MornyUtil.changeF2Y(userCard.balance)} 元")
|
|
|
if (!orderNumber.isNullOrEmpty()) {
|
data.add("订单号:$orderNumber")
|
}
|
|
data.add("设备操作员:${BaseApplication.userName}")
|
data.add(
|
"日 期:${
|
DateUtil.dateToStamp(
|
System.currentTimeMillis(),
|
DateUtil.type2
|
)
|
}"
|
)
|
data.add("*****************************")
|
}
|
|
CardOperationType.OpenCard -> {
|
data.add("*****************************")
|
data.add(" 开卡凭证")
|
data.add("*****************************")
|
|
// 添加用户名(从CardInfo中获取)
|
cardInfo?.userName?.let { userName ->
|
if (userName.isNotEmpty()) {
|
data.add("用户姓名:$userName")
|
}
|
}
|
|
// 添加卡地址
|
val cardAddress = cardNumber ?: cardAddr
|
if (!cardAddress.isNullOrEmpty()) {
|
data.add("卡 地 址:$cardAddress")
|
}
|
|
// 添加用户编号(从UserCard中获取)
|
if (!userCard.userCode.isNullOrEmpty()) {
|
data.add("用户编号:${userCard.getMyUserCode()}")
|
}
|
|
// 添加充值金额
|
if (rechargeAmount > 0) {
|
data.add("充值金额:${String.format("%.2f", rechargeAmount)} 元")
|
// 添加充值后余额
|
data.add("充值后余额:${MornyUtil.changeF2Y(userCard.balance)} 元")
|
}
|
|
// 添加赠送金额
|
if (cardFee > 0) {
|
data.add("工本费:" + MornyUtil.changeF2Y(cardFee) + "元")
|
}
|
|
// 添加订单号
|
if (!orderNumber.isNullOrEmpty()) {
|
data.add("订单号:$orderNumber")
|
}
|
|
// 添加设备操作员信息
|
data.add("设备操作员:${BaseApplication.userName}")
|
// 添加日期信息
|
data.add(
|
"日 期:${
|
DateUtil.dateToStamp(
|
System.currentTimeMillis(),
|
DateUtil.type2
|
)
|
}"
|
)
|
data.add("*****************************")
|
}
|
|
else -> {
|
// 其他操作的通用打印内容
|
data.add("*****************************")
|
data.add(" 操作凭证")
|
data.add("*****************************")
|
|
// 添加用户名(从CardInfo中获取)
|
cardInfo?.userName?.let { userName ->
|
if (userName.isNotEmpty()) {
|
data.add("用户姓名:$userName")
|
}
|
}
|
|
val cardAddress = cardNumber ?: cardAddr
|
if (!cardAddress.isNullOrEmpty()) {
|
data.add("卡 地 址:$cardAddress")
|
}
|
|
data.add("操作类型:${operationType?.description ?: "未知操作"}")
|
|
data.add("设备操作员:${BaseApplication.userName}")
|
data.add(
|
"日 期:${
|
DateUtil.dateToStamp(
|
System.currentTimeMillis(),
|
DateUtil.type2
|
)
|
}"
|
)
|
data.add("*****************************")
|
}
|
}
|
|
// 设置打印字体大小
|
val size = 26f
|
// 执行打印操作
|
PrintAdater.printText(data, size, true, false)
|
|
} catch (e: Exception) {
|
// 打印异常信息
|
e.printStackTrace()
|
// 可以添加Toast提示用户打印失败
|
runOnUiThread {
|
com.dayu.baselibrary.utils.ToastUtil.show("打印失败:${e.message}")
|
}
|
}
|
}
|
|
}
|