显示最后一笔
diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
index 01245b0..8de47f0 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
@@ -49,7 +49,6 @@
     private lateinit var vLastResult: TextView
     private lateinit var vLastPayamt: TextView
     private lateinit var vLastPayway: TextView
-    private lateinit var vLastPayday: TextView
     private lateinit var vLastPaytime: TextView
     private lateinit var vLastPayFailreason: TextView
     private lateinit var vLastPayFailll: LinearLayout
@@ -116,6 +115,7 @@
                 }
             }
         })
+        presenter.loadLastTransdtl()
     }
 
     private fun initView() {
@@ -130,7 +130,6 @@
         vLastResult = this.findViewById<TextView>(R.id.tv_last_pay_result)
         vLastPayamt = this.findViewById<TextView>(R.id.consume_last_payamt)
         vLastPayway = this.findViewById<TextView>(R.id.tv_last_payway)
-        vLastPayday = this.findViewById<TextView>(R.id.tv_last_payday)
         vLastPaytime = this.findViewById<TextView>(R.id.tv_last_paytime)
         vLastPayFailreason = this.findViewById<TextView>(R.id.tv_last_failreason)
         vLastPayFailll = this.findViewById<LinearLayout>(R.id.ll_consume_last_failreason)
@@ -337,6 +336,7 @@
         }
         AuxScreenController.getInstance().refreshContent(auxList)
         SoundUtil.playMusic(applicationContext, R.raw.consume_suc)
+        refreshRecentDtl(info)
     }
 
     override fun showConsumeHint(hint: String) {
@@ -349,6 +349,7 @@
         dialogPurchase!!.showPayFail(info)
         SoundUtil.playMusic(applicationContext, R.raw.consume_fail)
         AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("消费失败", "原因:", info.retmsg))
+        refreshRecentDtl(info)
     }
 
     override fun showReverseSuc(info: CardUserInfoBean) {
@@ -356,23 +357,25 @@
         AuxScreenController.getInstance()
             .refreshContent(Arrays.asList<String>(info.retmsg, CommonUtil.showFormatAmount("金额", info.payamt)))
         SoundUtil.playMusic(applicationContext, R.raw.reversal_suc)
+        refreshRecentDtl(info)
     }
 
     override fun showReverseFail(info: CardUserInfoBean) {
         dialogPurchase!!.showReverseFail(info)
         SoundUtil.playMusic(applicationContext, R.raw.reversal_fail)
         AuxScreenController.getInstance().refreshContent(Arrays.asList<String>("冲正失败", "原因:", info.retmsg))
+        refreshRecentDtl(info)
     }
 
-    private var lastShowRecentDatetime: String? = null
+    private var lastShowRecentTime: String? = null
     private fun refreshRecentDtl(info: CardUserInfoBean?) {
         if (info != null) {
             lastPayInfo = info
             //已显示过不在显示
-            if (lastShowRecentDatetime == info.datetime) {
+            if (lastShowRecentTime == info.transtime) {
                 return
             }
-            lastShowRecentDatetime = info.datetime
+            lastShowRecentTime = info.transtime
 
             if (info.status == PayStatus.SUC) {
                 when {
@@ -402,13 +405,9 @@
                 "市民卡"
             }
             val sb = StringBuilder()
-            sb.append(info.datetime!!.substring(0, 4)).append("/")
-                .append(info.datetime!!.substring(4, 6)).append("/")
-                .append(info.datetime!!.substring(6, 8))
-            vLastPayday.text = sb.toString()
-            sb.setLength(0)
-            sb.append(info.datetime!!.substring(8, 10)).append(":")
-                .append(info.datetime!!.substring(10, 12)).append(":").append(info.datetime!!.substring(12))
+            sb.append(info.transtime?.substring(0, 2)).append(":")
+                .append(info.transtime?.substring(2, 4)).append(":")
+                .append(info.transtime?.substring(4))
             vLastPaytime.text = sb.toString()
             resetPayShowCounter(10 * 1000)
         }
@@ -483,7 +482,6 @@
         vLastResult.text = null
         vLastPayamt.text = null
         vLastPayway.text = null
-        vLastPayday.text = null
         vLastPaytime.text = null
         vLastPayFailreason.text = null
     }
@@ -512,8 +510,10 @@
     override fun showRecentDtl(record: TransdtlUnionRecord?) {
         if (record != null) {
             val info = CardUserInfoBean(PublicDef.SUCCESS, "")
-            info.datetime = record.transdate + record.transtime
+            info.transdate = record.transdate
+            info.transtime = record.transtime
             info.username = record.username
+            info.cardno = record.cardno
             info.payamt = record.payamt
             info.status = record.status
             info.payway = record.payway
diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
index 268a67f..4d48b61 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
@@ -3,9 +3,11 @@
 import android.os.Handler
 import android.os.Looper
 import android.os.Message
+import com.supwisdom.activities.SPApplication
 import com.supwisdom.activities.consume.bean.CardUserInfoBean
 import com.supwisdom.activities.consume.mode.CardPayService
 import com.supwisdom.activities.consume.mode.CodePayService
+import com.supwisdom.utils.DateUtil
 import com.supwisdom.utils.LogUtil
 import com.supwisdom.utils.PublicDef
 import com.supwisdom.utils.ThreadPool
@@ -16,6 +18,7 @@
  **/
 class ConsumePresenter constructor(iConsumeView: IConsumeView) {
     private val TAG = "ConsumePresenter"
+    private val pos = SPApplication.getInstance().getPos()
     private val iConsumeView = iConsumeView
     private val codePayRunnable = CodePayRunnable()
     private lateinit var handler: Handler
@@ -94,6 +97,17 @@
         codePayService.interruptPay()
     }
 
+    fun loadLastTransdtl() {
+        ThreadPool.getShortPool().execute(Runnable {
+            val list = pos.getTransdtlUnion(DateUtil.getNowDateNoFormat(), 0, 0, 1)
+            if (list.isNotEmpty()) {
+                iConsumeView.getActivity().runOnUiThread {
+                    iConsumeView.showRecentDtl(list[0])
+                }
+            }
+        })
+    }
+
     private inner class CodePayRunnable : Runnable {
         override fun run() {
             codePayService.pay(code!!, amount)
diff --git a/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt b/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
index 499cdd3..047d57b 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
@@ -18,7 +18,8 @@
     var payamt: Int = 0
     var status: PayStatus? = null
     var reversalFlag: ReversalFlag? = null
-    var datetime: String? = null
+    var transdate: String? = null
+    var transtime: String? = null
     var payway: String? = null //card,code
 }
 
diff --git a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
index ffa329b..e1e2c0d 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
@@ -112,14 +112,14 @@
                             try {
                                 doReverse()
                             } catch (ex: CardPayCancelFailError) {
-                                sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getErrorInfo(ex.message))
+                                sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getRvsErrorInfo(ex.message))
                             } catch (ex: Exception) {
                                 ex.printStackTrace()
                                 LogUtil.d(
                                     TAG, "card pay cancel exception: cardphyid=$cardphyid"
                                             + "exception=${CommonUtil.getExceptionStack(ex)}"
                                 )
-                                sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getErrorInfo("程序异常"))
+                                sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getRvsErrorInfo("程序异常"))
                             }
                             clickStat = ClickStat.INIT
                         }
@@ -225,12 +225,7 @@
             val record = pos.getTransdtlOnlineLast() ?: throw CardPayCancelFailError("未找到联机记录")
             checkOnlineReverseVaild(unionRecord, record)
             saveTransdtlOnlineReverse(record)
-            showRvsSucInfo(
-                onlRvsRecord.payamt,
-                onlRvsRecord.username,
-                onlRvsRecord.cardno,
-                onlRvsRecord.transdate + onlRvsRecord.transtime
-            )
+            showRvsOnlSucInfo()
             asyncUpload(onlRvsRecord)
         }
 
@@ -238,12 +233,7 @@
             val record = pos.getTransdtlOfflineLast() ?: throw CardPayCancelFailError("未找到离线记录")
             checkOfflineReverseVaild(unionRecord, record)
             saveTransdtlOfflineReverse(record)
-            showRvsSucInfo(
-                offRvsRecord.payamt,
-                null,
-                offRvsRecord.cardno,
-                offRvsRecord.transdate + onlRvsRecord.transtime
-            )
+            showRvsOffSucInfo()
             asyncUpload(offRvsRecord)
         }
 
@@ -334,15 +324,10 @@
             }
             resp = consumeApi.payConfirm(onlRecord)
             result = parseConfirmResult(resp)
-            if (result) {
-                showRvsSucInfo(
-                    onlRecord.payamt,
-                    onlRecord.username,
-                    onlRecord.cardno,
-                    onlRecord.transdate + onlRecord.transtime
-                )
-            }
             updateTransdtlOnline(result)
+            if (result) {
+                showOnlSucInfo()
+            }
             return result
         }
 
@@ -414,7 +399,7 @@
             initTransdtlOffline()
             checkCardValid()
             updateTransdtlOffline(true)
-            showSucInfo(offRecord.payamt, null, offRecord.cardno, offRecord.transdate + offRecord.transtime)
+            showOffSucInfo()
         }
 
         private fun checkCardValid() {
@@ -482,29 +467,61 @@
             asyncUpload(offRecord)
         }
 
-        private fun showSucInfo(amount: Int, username: String?, cardno: String?, datetime: String) {
+        private fun showOnlSucInfo() {
             val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
             info.showtime = pos.getSysPara()!!.sucShowtime
-            info.amount = amount
-            info.payamt = amount
-            info.username = username
-            info.cardno = cardno
-            info.datetime = datetime
-            info.payway = "card"
-            info.status = PayStatus.SUC
+            info.amount = onlRecord.payamt
+            info.payamt = onlRecord.payamt
+            info.username = onlRecord.username
+            info.cardno = onlRecord.cardno
+            info.transdate = onlRecord.transdate
+            info.transtime = onlRecord.transtime
+            info.payway = onlRecord.transtype
+            info.status = onlRecord.status
+            info.reversalFlag = onlRecord.reversalflag
             sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
         }
 
-        private fun showRvsSucInfo(amount: Int, username: String?, cardno: String?, datetime: String) {
+        private fun showOffSucInfo() {
             val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
             info.showtime = pos.getSysPara()!!.sucShowtime
-            info.amount = amount
-            info.payamt = amount
-            info.username = username
-            info.cardno = cardno
-            info.datetime = datetime
+            info.amount = offRecord.payamt
+            info.payamt = offRecord.payamt
+            info.cardno = offRecord.cardno
+            info.transdate = offRecord.transdate
+            info.transtime = offRecord.transtime
             info.payway = "card"
-            info.status = PayStatus.SUC
+            info.status = offRecord.status
+            info.reversalFlag = offRecord.reversalflag
+            sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
+        }
+
+        private fun showRvsOnlSucInfo() {
+            val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
+            info.showtime = pos.getSysPara()!!.sucShowtime
+            info.amount = onlRvsRecord.payamt
+            info.payamt = onlRvsRecord.payamt
+            info.username = onlRvsRecord.username
+            info.cardno = onlRvsRecord.cardno
+            info.transdate = onlRvsRecord.transdate
+            info.transtime = onlRvsRecord.transtime
+            info.payway = onlRvsRecord.transtype
+            info.status = onlRvsRecord.status
+            info.reversalFlag = onlRvsRecord.reversalflag
+            sendMsg(PublicDef.MSG_CARD_REVERSE_SUC, info)
+        }
+
+        private fun showRvsOffSucInfo() {
+            val info = CardUserInfoBean(PublicDef.SUCCESS, "消费成功")
+            info.showtime = pos.getSysPara()!!.sucShowtime
+            info.amount = offRvsRecord.payamt
+            info.payamt = offRvsRecord.payamt
+            info.cardno = offRvsRecord.cardno
+            info.transdate = offRvsRecord.transdate
+            info.transtime = offRvsRecord.transtime
+            info.payway = "card"
+            info.status = offRvsRecord.status
+            info.reversalFlag = offRvsRecord.reversalflag
             sendMsg(PublicDef.MSG_CARD_REVERSE_SUC, info)
         }
 
@@ -574,6 +591,24 @@
             val info = CardUserInfoBean(PublicDef.ERROR, errmsg ?: "null")
             info.showtime = pos.getSysPara()!!.failShowtime
             info.status = PayStatus.FAIL
+            info.amount = amount
+            info.payamt = amount
+            info.payway = "card"
+            info.transdate = DateUtil.getNowDateNoFormat()
+            info.transtime = DateUtil.getNowTimeNoFormat()
+            return info
+        }
+
+        private fun getRvsErrorInfo(errmsg: String?): CardUserInfoBean {
+            val info = CardUserInfoBean(PublicDef.ERROR, errmsg ?: "null")
+            info.showtime = pos.getSysPara()!!.failShowtime
+            info.status = PayStatus.FAIL
+            info.amount = amount
+            info.payamt = amount
+            info.payway = "card"
+            info.transdate = DateUtil.getNowDateNoFormat()
+            info.transtime = DateUtil.getNowTimeNoFormat()
+            info.reversalFlag = ReversalFlag.MANUAL
             return info
         }
 
diff --git a/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt b/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt
index e301655..116a82b 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/mode/CodePayService.kt
@@ -32,12 +32,15 @@
      */
     @Volatile
     private var interruptedPay: Boolean = false
+    @Volatile
+    private var amount = 0
 
     fun interruptPay() {
         interruptedPay = true
     }
 
     fun pay(code: String, amount: Int) {
+        this.amount = amount
         interruptedPay = false
         try {
             initTransdtlOnline(code, amount)
@@ -171,9 +174,12 @@
         info.amount = codeRecord.payamt
         info.payamt = codeRecord.payamt
         info.username = codeRecord.username
-        info.datetime = codeRecord.transdate + codeRecord.transtime
+        info.cardno = codeRecord.cardno
+        info.transdate = codeRecord.transdate
+        info.transtime = codeRecord.transtime
         info.payway = codeRecord.transtype
-        info.status = PayStatus.SUC
+        info.status = codeRecord.status
+        info.reversalFlag = codeRecord.reversalflag
         sendMsg(PublicDef.MSG_CARD_PAY_SUC, info)
     }
 
@@ -181,6 +187,11 @@
         val info = CardUserInfoBean(PublicDef.ERROR, errmsg ?: "null")
         info.showtime = pos.getSysPara()!!.failShowtime
         info.status = PayStatus.FAIL
+        info.amount = amount
+        info.payamt = amount
+        info.payway = "code"
+        info.transdate = DateUtil.getNowDateNoFormat()
+        info.transtime = DateUtil.getNowTimeNoFormat()
         return info
     }
 
diff --git a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
index 9dcdb3e..a89d80e 100644
--- a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
+++ b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
@@ -97,6 +97,7 @@
 
     enum class TransdtlUnion {
         username,
+        cardno,
         transdate,
         transtime,
         devseqno,
diff --git a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
index 78bae0c..973dd8d 100644
--- a/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
+++ b/app/src/main/java/com/supwisdom/db/TransdtlUnionDao.kt
@@ -24,7 +24,8 @@
             .append(BeanPropEnum.TransdtlOffline.reversalflag).append(",")
             .append(BeanPropEnum.TransdtlOffline.payamt).append(",")
             .append(BeanPropEnum.TransdtlOffline.status).append(",")
-            .append(BeanPropEnum.TransdtlOffline.cardno).append(" as ").append(BeanPropEnum.TransdtlUnion.username)
+            .append(" 'null' as ").append(BeanPropEnum.TransdtlUnion.username).append(",")
+            .append(BeanPropEnum.TransdtlOffline.cardno).append(",")
             .append(",")
             .append(BeanPropEnum.TransdtlOffline.upflag)
             .append(" from ").append(DBTransdtlHelper.TABLE_NAME_DTL_OFFLINE)
@@ -38,6 +39,7 @@
             .append(BeanPropEnum.TransdtlOnline.payamt).append(",")
             .append(BeanPropEnum.TransdtlOnline.status).append(",")
             .append(BeanPropEnum.TransdtlOnline.username).append(",")
+            .append(BeanPropEnum.TransdtlOnline.cardno).append(",")
             .append(BeanPropEnum.TransdtlOnline.upflag)
             .append(" from ").append(DBTransdtlHelper.TABLE_NAME_DTL_ONLINE)
     }
@@ -97,6 +99,10 @@
         record.devseqno = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.devseqno.toString()))
         record.payway = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.payway.toString()))
         record.username = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.username.toString()))
+        if (record.username == "null") {
+            record.username = null
+        }
+        record.cardno = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.cardno.toString()))
         var flag = cursor.getString(cursor.getColumnIndex(BeanPropEnum.TransdtlUnion.reversalflag.toString()))
         when (flag) {
             ReversalFlag.NONE.toString() -> record.reversalflag = ReversalFlag.NONE
diff --git a/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt b/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
index bc78c6f..967fbd8 100644
--- a/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/TransdtlUnionRecord.kt
@@ -6,6 +6,7 @@
  **/
 class TransdtlUnionRecord {
     var username: String? = null
+    var cardno: String? = null
     var transdate: String? = null
     var transtime: String? = null
     var devseqno: Int = 0
diff --git a/app/src/main/java/com/supwisdom/utils/PublicDef.kt b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
index b67e05b..d55fa9f 100644
--- a/app/src/main/java/com/supwisdom/utils/PublicDef.kt
+++ b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
@@ -31,7 +31,7 @@
     const val MSG_USER_INFO_SHOW = 17
     const val MSG_USER_INFO_CLEAR = 18
     const val MSG_LINK_STATUS = 19
-    const val MSG_CODE_PAYING_CANCEL = 19
+    const val MSG_CODE_PAYING_CANCEL = 20
     /*************************不能重复*****************************/
     /**
      * 卡消费标志(1 byte)
diff --git a/app/src/main/res/layout/activity_consume.xml b/app/src/main/res/layout/activity_consume.xml
index 08a845f..d453add 100644
--- a/app/src/main/res/layout/activity_consume.xml
+++ b/app/src/main/res/layout/activity_consume.xml
@@ -382,31 +382,6 @@
             <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="match_parent"
-                    android:text="支付日期:  "
-                    android:textColor="@color/black"
-                    android:textSize="@dimen/consume_text_size2"/>
-
-            <TextView
-                    android:id="@+id/tv_last_payday"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:maxLines="1"
-                    android:text=""
-                    android:textColor="@color/blue"
-                    android:textSize="@dimen/consume_text_size2"
-                    android:textStyle="bold"/>
-        </LinearLayout>
-
-        <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:paddingLeft="10dp"
-                android:paddingTop="5dp">
-
-            <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
                     android:text="支付时间:  "
                     android:textColor="@color/black"
                     android:textSize="@dimen/consume_text_size2"/>