From 3673328730251736f9614793d9a75630c17b28f6 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 13 八月 2024 09:10:27 +0800
Subject: [PATCH] 修改未关泵补卡逻辑

---
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java                   |    4 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java     |   15 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java    |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java |   40 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java    |    2 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java           |    3 
 qiheonlinelibrary/src/main/AndroidManifest.xml                                                  |   10 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/NewCardAdapter.java          |    4 
 qiheonlinelibrary/src/main/res/layout/activity_manager_write_qhl.xml                            |  233 ++++++++++
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java        |   42 -
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java          |  323 ++++++++++++-
 qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml                                 |   19 
 qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml                                    |    1 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java   |  136 ++++++
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java        |   14 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java                 |    4 
 qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml                                    |   10 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java    |  114 +++-
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java       |   65 +-
 qiheonlinelibrary/src/main/res/layout/activity_manager_read_qhl.xml                             |   26 -
 qiheonlinelibrary/src/main/res/layout/activity_recharge_detail_qhl.xml                          |   27 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java                 |   45 +
 baselibrary/src/main/res/mipmap-xhdpi/icon_close_dialog.png                                     |    0 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java             |    6 
 local.properties                                                                                |    4 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java       |   39 +
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java              |   20 
 qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml                                     |   23 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java           |    7 
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java             |   66 +++
 30 files changed, 1,063 insertions(+), 241 deletions(-)

diff --git a/baselibrary/src/main/res/mipmap-xhdpi/icon_close_dialog.png b/baselibrary/src/main/res/mipmap-xhdpi/icon_close_dialog.png
new file mode 100644
index 0000000..f9980d6
--- /dev/null
+++ b/baselibrary/src/main/res/mipmap-xhdpi/icon_close_dialog.png
Binary files differ
diff --git a/local.properties b/local.properties
index 4f584e7..f074cd4 100644
--- a/local.properties
+++ b/local.properties
@@ -4,5 +4,5 @@
 # Location of the SDK. This is only used by Gradle.
 # For customization when using a Version Control System, please read the
 # header note.
-#Fri Jul 19 15:11:21 CST 2024
-sdk.dir=D\:\\android\\sdk
+#Mon Aug 12 12:34:59 CST 2024
+sdk.dir=D\:\\AndroidStudio\\sdk
diff --git a/qiheonlinelibrary/src/main/AndroidManifest.xml b/qiheonlinelibrary/src/main/AndroidManifest.xml
index 1cf9208..27c2076 100644
--- a/qiheonlinelibrary/src/main/AndroidManifest.xml
+++ b/qiheonlinelibrary/src/main/AndroidManifest.xml
@@ -78,6 +78,16 @@
         <activity android:name="com.dayu.qiheonlinelibrary.activity.RegionActivity" />
         <activity android:name="com.dayu.qiheonlinelibrary.activity.ManagerListActivity" />
         <activity
+            android:name="com.dayu.qiheonlinelibrary.activity.ManagerWriteActivity"
+            android:exported="true"
+            android:launchMode="singleTop">
+            <intent-filter>
+                <action android:name="android.nfc.action.ACTION_NDEF_DISCOVERED" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="text/plain" />
+            </intent-filter>
+        </activity>
+        <activity
             android:name="com.dayu.qiheonlinelibrary.activity.ManagerReadActivity"
             android:exported="true"
             android:launchMode="singleTop">
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java
index bbe4343..8048fa1 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java
@@ -179,6 +179,8 @@
                         });
                     } else if (type == BaseCommon.REPLACE_NO_CARD) {
                         startNFCActivit(iccardInfoId);
+                    } else if (type == BaseCommon.REPLACE_HAS_CARD) {
+                        startNFCActivit(iccardInfoId);
                     }
 
                 } else {
@@ -210,6 +212,11 @@
         });
     }
 
+    /**
+     * 宸插叧娉佃ˉ鍗�
+     *
+     * @param iccardInfoId
+     */
     private void startNFCActivit(String iccardInfoId) {
         //鐩存帴琛ュ崱鐨勬柟寮�
         Intent intent = new Intent(CardSearchActivity.this, NFCWreatActivity.class);
@@ -219,8 +226,14 @@
         CardSearchActivity.this.finish();
     }
 
+    /**
+     * 鏈叧娉佃ˉ鍗�
+     *
+     * @param iccardInfoId
+     * @param oldCardNumber
+     */
     private void startManagerActivity(String iccardInfoId, String oldCardNumber) {
-        Intent intent = new Intent(CardSearchActivity.this, ManagerReadActivity.class);
+        Intent intent = new Intent(CardSearchActivity.this, ManagerWriteActivity.class);
         intent.putExtra("iccardInfoId", iccardInfoId);
         intent.putExtra("replaceType", type);
         intent.putExtra("oldCardNumber", oldCardNumber);
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java
index 7697c0a..4e76d69 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java
@@ -79,6 +79,7 @@
             intent.putExtra("type", BaseCommon.REPORT_LOSS_CARD);
             startActivity(intent);
         });
+        //琛ュ崱鍐欏崱
         homeBinding.homeReplacement.setOnClickListener(v -> {
             replacementDialog = new ChooseReplacementDialog(this, type -> {
                 Intent intent = new Intent(HomeActivity.this, UserSearchActivity.class);
@@ -88,6 +89,12 @@
             });
             replacementDialog.show();
         });
+        //琛ュ崱鍐欏崱
+        homeBinding.homeReplacementWrite.setOnClickListener(v -> {
+            Intent intent = new Intent(HomeActivity.this, ManagerReadActivity.class);
+            intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD);
+            startActivity(intent);
+        });
     }
 
     @Override
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java
index 909f5c4..fda26c7 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/IdentifyingActivity.java
@@ -95,7 +95,7 @@
                 if (cardData != null) {
                     setData(cardData);
                 } else {
-                    binding.electricOldNumber.setText(new ManageCard().getCardData());
+                    binding.electricOldNumber.setText(new ManageCard().getUserCard());
                 }
                 break;
             case "娓呴浂鍗�":
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java
index 9cbb9ab..91c4c32 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java
@@ -3,50 +3,61 @@
 import android.content.Intent;
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
-import android.text.TextUtils;
 import android.view.LayoutInflater;
 
+import com.dayu.baselibrary.utils.BaseCommon;
 import com.dayu.baselibrary.utils.TipUtil;
-import com.dayu.qiheonlinelibrary.card.ManageCard;
+import com.dayu.qiheonlinelibrary.QHOnLineApplication;
+import com.dayu.qiheonlinelibrary.bean.CardInfoResult;
+import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
 import com.dayu.qiheonlinelibrary.databinding.ActivityManagerReadQhlBinding;
-import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper;
+import com.dayu.qiheonlinelibrary.net.ApiManager;
+import com.dayu.qiheonlinelibrary.net.BaseResponse;
+import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
 import com.dayu.qiheonlinelibrary.tools.NfcReadHelper;
+import com.dayu.qiheonlinelibrary.utils.CardCommon;
 import com.dayu.qiheonlinelibrary.view.ProgressDialog;
 
+import java.util.HashMap;
+import java.util.Map;
 
 /**
+ * Created by Android Studio.
  * author: zuo
- * Date: 2024-05-09
- * Time: 11:05
- * 澶囨敞锛氬埗浣滅鐞嗗崱
+ * Date: 2024-08-12
+ * Time: 20:10
+ * 澶囨敞锛�
  */
 public class ManagerReadActivity extends BaseNfcActivity {
 
     ActivityManagerReadQhlBinding binding;
     Intent intent;
-
     String oldCardNumber;
-    boolean isCreatManagerCard;
-    String iccardInfoId;
+    String cardNumber;
 
-    int type;
+    boolean isReadSuccess;
+
+    CardInfoResult cardInfoResult;
+    ManagerToUserCard managerToUserCard;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         binding = ActivityManagerReadQhlBinding.inflate(LayoutInflater.from(this));
         setContentView(binding.getRoot());
-        oldCardNumber = this.getIntent().getStringExtra("oldCardNumber");
-        iccardInfoId = this.getIntent().getStringExtra("iccardInfoId");
-        type = this.getIntent().getIntExtra("replaceType", 0);
+        initView();
+    }
+
+    private void initView() {
         binding.managerNext.setOnClickListener(v -> {
-            if (isCreatManagerCard) {
+            if (isReadSuccess) {
                 Intent intent = new Intent(ManagerReadActivity.this, NFCWreatActivity.class);
-                intent.putExtra("iccardInfoId", iccardInfoId);
-                intent.putExtra("replaceType", type);
+                intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId());
+                intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD);
                 startActivity(intent);
-            } else {
-                TipUtil.show("璇峰厛鍒朵綔绠$悊鍗�");
+                ManagerReadActivity.this.finish();
+            }else {
+                TipUtil.show(ManagerReadActivity.this,"璇峰埛绠$悊鍗�");
             }
         });
     }
@@ -56,27 +67,60 @@
         this.intent = intent;
         ProgressDialog.show(this);
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
-            getCardNumber();
+            String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
+
+            String[] cardTypes = cardType.split(",");
+            if (cardTypes != null && cardTypes.length == 2) {
+                cardNumber = cardType.split(",")[0];
+                cardType = cardType.split(",")[1];
+            }
+
+            if (CardCommon.MANAGE_CRAD.equalsIgnoreCase(cardType)) {
+                managerToUserCard = NfcReadHelper.getInstence(intent, this).getManagerToUserCardData();
+                if (managerToUserCard != null) {
+                    if (QHOnLineApplication.getInstance().arerNumber.equalsIgnoreCase(String.valueOf(managerToUserCard.getArerNumber()))) {
+                        getUserInfoAndCardInfo(managerToUserCard.getOldCardNumber());
+                    } else {
+                        TipUtil.show(this, "涓嶆槸鏈尯鍩熷崱锛�");
+                    }
+                    ProgressDialog.dismiss();
+                } else {
+                    ProgressDialog.dismiss();
+                    TipUtil.show(this, "璇诲崱澶辫触锛岃閲嶈瘯锛�");
+                }
+            } else {
+                ProgressDialog.dismiss();
+                TipUtil.show(this, "褰撳墠鍗′笉鏄鐞嗗崱锛侊紒锛�");
+            }
         }
         super.onNewIntent(intent);
     }
 
-
-    private void getCardNumber() {
-        String cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber();
-        if (!TextUtils.isEmpty(cardNumber)) {
-            ManageCard manageCard = new ManageCard();
-            manageCard.setUserCard(oldCardNumber);
-            manageCard.setType((byte) 0);
-            if (NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0)) {
-                isCreatManagerCard = true;
-            } else {
-                isCreatManagerCard = false;
+    /**
+     * 鑾峰彇鍗′俊鎭拰鐢ㄦ埛淇℃伅
+     *
+     * @param iccardCode
+     */
+    public void getUserInfoAndCardInfo(String iccardCode) {
+        Map<String, Object> data = new HashMap<>();
+        //ic鍗′俊鎭痠d
+        data.put("iccardNum", iccardCode);
+        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
+            @Override
+            public void onNext(BaseResponse<CardInfoResult> t) {
+                String state = "";
+                if (t.isSuccess()) {
+                    cardInfoResult = t.getData();
+                    isReadSuccess = true;
+                    TipUtil.show(ManagerReadActivity.this, "璇诲崱鎴愬姛锛屼笅涓�姝ュ皢鍐欏崱锛�", () -> {
+                        Intent intent = new Intent(ManagerReadActivity.this, NFCWreatActivity.class);
+                        intent.putExtra("iccardInfoId", cardInfoResult.getIccardInfoId());
+                        intent.putExtra("replaceType", BaseCommon.REPLACE_HAS_CARD);
+                        startActivity(intent);
+                        ManagerReadActivity.this.finish();
+                    });
+                }
             }
-            ProgressDialog.dismiss();
-            TipUtil.show(this,"绠$悊鍗″埗鍗℃垚鍔燂紝璇峰湪鎺у埗鍣ㄧ鍒峰崱");
-        } else {
-            TipUtil.show(this, "鏈鍙栧埌鏂板崱鍗″彿锛岃閲嶆柊璐村崱");
-        }
+        });
     }
 }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java
new file mode 100644
index 0000000..73a2a7d
--- /dev/null
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java
@@ -0,0 +1,136 @@
+package com.dayu.qiheonlinelibrary.activity;
+
+import android.content.Intent;
+import android.nfc.NfcAdapter;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.dayu.baselibrary.utils.BaseCommon;
+import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.baselibrary.view.ConfirmDialog;
+import com.dayu.qiheonlinelibrary.QHOnLineApplication;
+import com.dayu.qiheonlinelibrary.card.ManageCard;
+import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
+import com.dayu.qiheonlinelibrary.databinding.ActivityManagerReadQhlBinding;
+import com.dayu.qiheonlinelibrary.databinding.ActivityManagerWriteQhlBinding;
+import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper;
+import com.dayu.qiheonlinelibrary.tools.NfcReadHelper;
+import com.dayu.qiheonlinelibrary.utils.CardCommon;
+import com.dayu.qiheonlinelibrary.view.ProgressDialog;
+
+
+/**
+ * author: zuo
+ * Date: 2024-05-09
+ * Time: 11:05
+ * 澶囨敞锛氬埗浣滅鐞嗗崱
+ */
+public class ManagerWriteActivity extends BaseNfcActivity {
+
+    ActivityManagerWriteQhlBinding binding;
+    Intent intent;
+
+    String oldCardNumber;
+    String cardNumber;
+    boolean isCreatManagerCard;
+    String iccardInfoId;
+
+    //褰撳墠姝ラ
+    int number = 1;
+
+    int type;
+    ConfirmDialog confirmDialog;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        binding = ActivityManagerWriteQhlBinding.inflate(LayoutInflater.from(this));
+        setContentView(binding.getRoot());
+        oldCardNumber = this.getIntent().getStringExtra("oldCardNumber");
+        iccardInfoId = this.getIntent().getStringExtra("iccardInfoId");
+        type = this.getIntent().getIntExtra("replaceType", 0);
+        binding.managerNext.setOnClickListener(v -> {
+            //宸插畬鎴愮浜屾
+            if (number == 2) {
+                if (type == BaseCommon.REPLACE_NO_CARD) {
+                    Intent intent = new Intent(ManagerWriteActivity.this, NFCWreatActivity.class);
+                    intent.putExtra("iccardInfoId", iccardInfoId);
+                    intent.putExtra("replaceType", type);
+                    startActivity(intent);
+                    ManagerWriteActivity.this.finish();
+                } else {
+                    TipUtil.show(this, "璇峰湪鎺у埗鍣ㄧ鍒峰崱鍚庡湪棣栭〉鐐瑰嚮娉垫湭鍏冲啓鍗″悗缁х画琛ュ崱锛�", () -> {
+                        ManagerWriteActivity.this.finish();
+                    });
+                }
+
+            } else {
+                TipUtil.show("璇峰厛鍒朵綔绠$悊鍗�");
+            }
+        });
+    }
+
+    @Override
+    public void onNewIntent(Intent intent) {
+        this.intent = intent;
+        ProgressDialog.show(this);
+        if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
+            getCardNumber();
+        }
+        super.onNewIntent(intent);
+    }
+
+
+    private void getCardNumber() {
+
+        String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
+
+        String[] cardTypes = cardType.split(",");
+        if (cardTypes != null && cardTypes.length == 2) {
+            cardNumber = cardType.split(",")[0];
+            cardType = cardType.split(",")[1];
+        }
+        ManageCard manageCard = new ManageCard();
+        manageCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber));
+        manageCard.setUserCard(oldCardNumber);
+        manageCard.setCardWriteState((byte) 0);
+        if (NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0)) {
+            isCreatManagerCard = true;
+            number = 2;
+            binding.number2.setVisibility(View.VISIBLE);
+        } else {
+            isCreatManagerCard = false;
+        }
+
+        TipUtil.show(this, "绠$悊鍗″埗鍗℃垚鍔燂紝璇峰湪鎺у埗鍣ㄧ鍒峰崱");
+        ProgressDialog.dismiss();
+
+    }
+
+    /**
+     * 鐐瑰嚮杩斿洖鏃舵彁绀虹敤鎴疯繕鏈啓鍗�
+     *
+     * @param keyCode
+     * @param event
+     * @return
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            back();
+            return true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private void back() {
+        confirmDialog = new ConfirmDialog(ManagerWriteActivity.this, "姝e湪琛ュ崱锛岀‘瀹氶��鍑哄悧锛�", v -> {
+            confirmDialog.dismiss();
+            ManagerWriteActivity.this.finish();
+        });
+        confirmDialog.show();
+    }
+}
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java
index 15e946c..661efbb 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java
@@ -91,6 +91,7 @@
                 startActivity(new Intent(MyActivity.this, NewCardListActivity.class));
             }
         });
+        //寮�鍗¤褰�
         myBinding.myNewCardOut.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -98,6 +99,7 @@
                 beginDatePicker.show(System.currentTimeMillis());
             }
         });
+        //鍏呭�艰褰�
         myBinding.myRechargeOut.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -165,10 +167,10 @@
                             return;
                         }
                         if (isRechargeList) {
-                            title = new String[]{"璁惧搴忓垪鍙�", "鐢ㄦ埛鍚�", "鍗″彿", "鍏呭�兼棩鏈�", "鍏呭�奸噾棰濓紙鍏冿級", "鍓╀綑閲戦锛堝厓锛�"};
+                            title = new String[]{"璁惧搴忓垪鍙�", "鐢ㄦ埛鍚�", "鍗″彿", "鍏呭�兼棩鏈�", "鍏呭�奸噾棰濓紙鍏冿級", "鍓╀綑閲戦锛堝厓锛�","鍏呭�肩數閲忥紙搴︼級","鍓╀綑鐢甸噺锛堝害锛�","鐢ㄦ埛缂栧彿"};
                             fileName = file.toString() + "/" + ExcelUtil.outRechargePathName;
                         } else {
-                            title = new String[]{"璁惧搴忓垪鍙�", "鐢ㄦ埛鍚�", "韬唤璇佸彿", "鍗″彿", "娉ㄥ唽鏃ユ湡", "鐢佃瘽"};
+                            title = new String[]{"璁惧搴忓垪鍙�", "鐢ㄦ埛鍚�", "韬唤璇佸彿", "鍗″彿", "娉ㄥ唽鏃ユ湡", "鐢佃瘽","鐢ㄦ埛缂栧彿"};
                             fileName = file.toString() + "/" + ExcelUtil.outUserPathName;
                         }
                         ExcelUtil.initExcel(fileName, title);
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java
index c86b591..f066485 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java
@@ -28,6 +28,7 @@
 import com.dayu.qiheonlinelibrary.card.DomainCard;
 import com.dayu.qiheonlinelibrary.card.ElectricPriceCard;
 import com.dayu.qiheonlinelibrary.card.ManageCard;
+import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
 import com.dayu.qiheonlinelibrary.card.PassWordCard;
 import com.dayu.qiheonlinelibrary.card.RegionCard;
 import com.dayu.qiheonlinelibrary.card.RegisteredCard;
@@ -119,6 +120,7 @@
     //琛ュ崱宸ユ湰璐圭敤
     String rechargeCardMoney;
     ReplacementPriceDialog replacementPriceDialog;
+    ManagerToUserCard managerToUserCard;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -210,6 +212,7 @@
             }
             if (this.getIntent().hasExtra("iccardInfoId")) {
                 iccardInfoId = this.getIntent().getStringExtra("iccardInfoId");
+                //琛ュ崱绫诲瀷
                 replaceType = this.getIntent().getIntExtra("replaceType", 0);
                 replacementPriceDialog = new ReplacementPriceDialog(this, data -> {
                     if (TextUtils.isEmpty(data)) {
@@ -373,11 +376,14 @@
             if (rechargeBean != null) {
                 data.append("*****************************" + "\n");
                 data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n");
-                data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n");
-                data.append("鍗�  鍙凤細" + rechargeBean.getCardNumber() + "\n");
+                data.append("濮�   鍚嶏細" + rechargeBean.getUserName() + "\n");
+                data.append("鍗�   鍙凤細" + rechargeBean.getCardNumber() + "\n");
+                data.append("鐢ㄦ埛缂栧彿锛�" + rechargeBean.getUserCode() + "\n");
                 data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�" + "\n");
                 data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�" + "\n");
-                data.append("鏃�  鏈燂細" + DateUtil.dateToStamp(rechargeBean.getRechargeDate(), DateUtil.type2) + "\n\n");
+                data.append("鍏呭�肩數閲忥細" + rechargeBean.getRechargeElectric() + " 搴�" + "\n");
+                data.append("鍓╀綑鐢甸噺锛�" + rechargeBean.getRechargeElectric() + " 搴�" + "\n");
+                data.append("鏃�   鏈燂細" + DateUtil.dateToStamp(rechargeBean.getRechargeDate(), DateUtil.type2) + "\n\n");
                 data.append("*****************************");
             }
             float size = 26;
@@ -426,19 +432,16 @@
         }
     }
 
-    private void startDetailActivity(String userName, String statu) {
+    private void startDetailActivity(String statu) {
         Intent detail = new Intent(this, RechargeDetailActivity.class);
-        detail.putExtra("userName", userName);
         detail.putExtra("statu", statu);
         detail.putExtra("userCard", userCard);
         if (!TextUtils.isEmpty(morny)) {
             detail.putExtra("morny", morny);
             detail.putExtra("rechargeBean", rechargeBean);
+        } else {
+            detail.putExtra("userCardBean", userCardBean);
         }
-        if (!TextUtils.isEmpty(cardNumber)) {
-            detail.putExtra("cardNumber", cardNumber);
-        }
-
         startActivity(detail);
         if (NewCardActivity.newCardActivity != null) {
             NewCardActivity.newCardActivity.finish();
@@ -550,7 +553,7 @@
             public void onNext(BaseResponse<LoginResult> t) {
                 if (t.isSuccess()) {
                     //{"code":"0","msg":"鎿嶄綔鎴愬姛","data":{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-05 17:04:15","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820385315354320898","iccardProtocolName":"","totalRechargeElectricAmount":0.00,"logicState":1,"username":"","state":1,"familySize":"","yearRechargeMoney":0.00,"thisSaleAmount":"","onlyRechargeMoney":"","identityCard":"","iccardBrand":"","iccardBalanceMoney":0.00,"openOperatorUsername":"","adName":"","rechargeWaterAmount":"","openOperatorUserId":"1816297106145103873","lastSwipeTime":"","address":"","yearCompensateMoney":0.00,"iccardProtocolOpenMoney":"","peasantId":"1820374742679953410","reissueTimes":0,"iccardProtocolReissueMoney":"","iccardProtocolId":"","yearRechargeWaterAmount":0.00,"iccardBalanceElectric":0.00,"iccardStatus":0,"phone":"","lastRechargeMoney":0.00,"iccardOpenTime":"","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"BADA4044"}}
-                    startDetailActivity(userCardBean.getUserName(), "缁堢鍐欏崱");
+                    startDetailActivity("缁堢鍐欏崱");
                 }
             }
         });
@@ -582,12 +585,28 @@
                     }
                     //   鎵撳嵃鐩稿叧
                     setPrinterData(rechargeBean);
-                    startDetailActivity(rechargeBean.getUserName(), "缁堢鍐欏崱");
+                    startDetailActivity("缁堢鍐欏崱");
                 }
             }
         });
     }
-
+    /**
+     * 琛ュ崱閫昏緫
+     */
+    private void replaceCard() {
+        cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber();
+        if (replaceType == BaseCommon.REPLACE_NO_CARD) {
+            replaceCardPost("", "");
+        } else if (replaceType == BaseCommon.REPLACE_HAS_CARD) {
+            managerToUserCard = NfcReadHelper.getInstence(intent, NFCWreatActivity.this).getManagerToUserCardData();
+            //鍒ゆ柇鏄惁宸茬粡鍦ㄦ帶鍒跺櫒绔埛鍗�
+            if (managerToUserCard.getCardWriteState() == 1) {
+                replaceCardPost(MornyUtil.changeF2Y(managerToUserCard.getBalance()), MornyUtil.changeF2Y(managerToUserCard.getSurplusElecticity()));
+            } else {
+                TipUtil.show("璇峰湪鎺у埗鍣ㄧ鍒峰崱");
+            }
+        }
+    }
 
     /**
      * 琛ュ崱
@@ -652,29 +671,13 @@
             @Override
             public void onNext(BaseResponse<LoginResult> t) {
                 if (t.isSuccess()) {
-
-                    try {
-                        baseDao.rechargeDao().insert(rechargeBean);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    //   鎵撳嵃鐩稿叧
-                    setPrinterData(rechargeBean);
-                    startDetailActivity(rechargeBean.getUserName(), "缁堢鍐欏崱");
+                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛锛�", () -> {
+                        NFCWreatActivity.this.finish();
+                    });
                 }
             }
         });
     }
 
-    /**
-     * 琛ュ崱閫昏緫
-     */
-    private void replaceCard() {
-        cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber();
-        if (replaceType == BaseCommon.REPLACE_NO_CARD) {
-            replaceCardPost("", "");
-        } else if (replaceType == BaseCommon.REPLACE_HAS_CARD) {
 
-        }
-    }
 }
\ No newline at end of file
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java
index dd324a9..a05548b 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java
@@ -74,7 +74,7 @@
     }
 
     private void initView() {
-        newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()});
+//        newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()});
         newCardBinding.newCardId.setFilters(new InputFilter[]{new AlphaNumericXFilter(), new InputFilter.LengthFilter(18)});
         //韬唤璇佽瘑鍒�
         newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() {
@@ -94,7 +94,7 @@
             if (!TextUtils.isEmpty(userName)
                     && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID)
             ) {
-                if (userName.length() <= 1 || !validateName(userName)) {
+                if (userName.length() <= 1) {
                     TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�");
                 } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) {
                     TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿");
@@ -320,9 +320,9 @@
                             addUser(peasantIdNumber, peasantPhone, peasantName, QHOnLineApplication.getInstance().planId, morny);
                         }
                     } else {
-                        startNFCWreatActivity(peasantIdNumber, peasantPhone, peasantName, t.getData().getRecords().get(0).getPeasantId(), morny);
+                        startNFCWreatActivity(peasantIdNumber, t.getData().getRecords().get(0).getPeasantPhone(), t.getData().getRecords().get(0).getPeasantName(), t.getData().getRecords().get(0).getPeasantId(), morny);
                     }
-                }else {
+                } else {
                     ToastUtil.show(t.getMsg());
                 }
             }
@@ -339,7 +339,7 @@
         userCard.setSurplusElecticity(0);
         userCard.setTotalMorny(0);
         userCard.setRechargeDate(Calendar.getInstance());
-
+        userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
         UserCardBean userCardBean = new UserCardBean();
 
         userCardBean.setUserName(peasantName);
@@ -383,8 +383,8 @@
             @Override
             public void onNext(BaseResponse<AddUserResult> t) {
                 if (t.isSuccess()) {
-                    startNFCWreatActivity(peasantIdNumber, peasantPhone, peasantName, t.getData().getPeasantId(), morny);
-                }else {
+                    startNFCWreatActivity(peasantIdNumber, t.getData().getPeasantPhone(), t.getData().getPeasantName(), t.getData().getPeasantId(), morny);
+                } else {
                     ToastUtil.show(t.getMsg());
                 }
             }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java
index cd85db7..3e65674 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java
@@ -119,43 +119,7 @@
                 userCardStr = manageCard.getUserCard().toUpperCase();
                 redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱" + "\n\n"
                         + "鍘熷鍗″彿锛�" + userCardStr);
-                if (manageCard.getType() == (byte) 1) {
-                    //褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭
-                    confirmDialog = new ConfirmDialog(this, "鏄惁纭琛ュ崱锛岃鍗″皢鎴愪负鏂扮敤鎴峰崱锛熷苟涓斾笉瑕佺Щ鍔ㄥ崱鐗�", new View.OnClickListener() {
-                        @Override
-                        public void onClick(View v) {
-                            ProgressDialog.show(ReadCardAcitivy.this);
-                            try {
-                                confirmDialog.dismiss();
 
-                                List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(userCardStr);
-                                if (userCardBeans != null && !userCardBeans.isEmpty()) {
-                                    UserCardBean userName = userCardBeans.get(0);
-                                    userName.setCardNumber(cardNumber);
-                                    baseDao.userCardDao().update(userName);
-                                }
-
-                                NFCWriteHelper nfcWriteHelper = NFCWriteHelper.getInstence(intent, ReadCardAcitivy.this);
-                                adminData = baseDao.adminDao().findFirst();
-                                ManagerToUserCard managerToUserCard = new ManagerToUserCard();
-                                managerToUserCard.setArerNumber(Integer.valueOf(adminData.getSerial()));
-                                managerToUserCard.setDeviceNumberl(Integer.valueOf(adminData.getAddressCode()));
-                                managerToUserCard.setTotalElectric(manageCard.getTotalElectric());
-                                if (nfcWriteHelper.writeData(managerToUserCard.getZeroBytes(), 1, 0)) {
-                                    TipUtil.show(ReadCardAcitivy.this, "琛ュ崱鎴愬姛", () -> ReadCardAcitivy.this.finish());
-                                } else {
-                                    TipUtil.show(ReadCardAcitivy.this, "琛ュ崱澶辫触锛岃閲嶆柊鍒峰崱", () -> ReadCardAcitivy.this.finish());
-                                }
-
-
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
-                            stopAnim();
-                        }
-                    });
-                    confirmDialog.show();
-                }
                 break;
             case CardCommon.CLEAN_CARD_TYPE:
                 viweGone(false);
@@ -283,9 +247,9 @@
             redCardBinding.redName.setText(cardInfoResult.getPeasantName());
             redCardBinding.redCardCode.setText(cardNumber);
             redCardBinding.redUserCode.setText(cardInfoResult.getIccardCode());
-            redCardBinding.redBlance.setText(MornyUtil.changeF2Y(userCard.getBalance())+"鍏�");
-            redCardBinding.redElectric.setText(MornyUtil.changeF2Y(userCard.getSurplusElecticity())+"搴�");
-            redCardBinding.redTotalMorny.setText(MornyUtil.changeF2Y(userCard.getTotalMorny())+"鍏�");
+            redCardBinding.redBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + "鍏�");
+            redCardBinding.redElectric.setText(MornyUtil.changeF2Y(userCard.getSurplusElecticity()) + "搴�");
+            redCardBinding.redTotalMorny.setText(MornyUtil.changeF2Y(userCard.getTotalMorny()) + "鍏�");
             redCardBinding.redPhone.setText(cardInfoResult.getPeasantPhone());
             redCardBinding.redCodeId.setText(cardInfoResult.getPeasantIdNumber());
             if (cardInfoResult.getIccardStatus() == 0) {
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
index 3dc5ce1..2743c68 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
@@ -68,6 +68,8 @@
 
     CardInfoResult cardInfoResult;
 
+    UserCard mOldUserCard;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -103,6 +105,8 @@
             cardNumber = cardType.split(",")[0];
             cardType = cardType.split(",")[1];
         }
+        //鑾峰彇鍗″唴淇℃伅
+        mOldUserCard = NfcReadHelper.getInstence(intent, this).getUserCardData();
         getUserInfoAndCardInfo(cardNumber);
 
     }
@@ -134,6 +138,7 @@
             binding.redStatu.setText(state);
             binding.redInitCode.setText(cardNumber);
             binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細\n\n" + lastRechargeTime);
+            binding.redUserCode.setText(cardInfoResult.getIccardCode());
             if (userCard != null) {
 
                 binding.redRemainderBlance.setText(String.valueOf(iccardBalanceMoney) + " 鍏�");
@@ -220,12 +225,16 @@
 
 
     private void startNfcActivity(String morny, String balance, float rechargeElectric, float iccardBalanceElectric, float totalMorny, String iccardRechargeRecordId) {
+        //鍏堝鐞嗚ˉ鎵�
+        //鍏呭�艰ˉ鎵i噾棰�=鍏呭�奸噾棰�+鍏呭�煎墠璇诲彇鐨勫崱鍐呬綑棰�-鍏呭�煎洖璋冭繑鍥炲崱鍐呬綑棰�
+        int deductionMorny = MornyUtil.changeY2F(morny) + mOldUserCard.getBalance() - MornyUtil.changeY2F(balance);
+
 
         //娣诲姞鍏呭�间俊鎭�
         rechargeBean = new RechargeBean();
         rechargeBean.setCardNumber(cardNumber);
-        rechargeBean.setUserCode(userCard.getUserCode());
-        rechargeBean.setUserName("");
+        rechargeBean.setUserCode(userCard.getUserCode() + userCard.getUserCodeNumber());
+        rechargeBean.setUserName(cardInfoResult.getPeasantName());
         rechargeBean.setPersonId(cardInfoResult.getPeasantId());
         rechargeBean.setSerial(DeviceUtils.getSN());
         rechargeBean.setArerNumber(QHOnLineApplication.getInstance().arerNumber);
@@ -240,6 +249,7 @@
         rechargeBean.setTotalMorny(String.valueOf(totalMorny));
         rechargeBean.setState(1);
         rechargeBean.setOrderId(iccardRechargeRecordId);
+        rechargeBean.setDeductionMorny(MornyUtil.changeF2Y(deductionMorny));
 
         userCard.setCardWriteState(0);
         userCard.setCardState(1);
@@ -250,13 +260,26 @@
         String sumMorny = MornyUtil.sumPrice(Float.valueOf(MornyUtil.changeF2Y(userCard.getTotalMorny())), Float.valueOf(morny));
         userCard.setTotalMorny(MornyUtil.changeY2F(sumMorny));
         userCard.setRechargeDate(calendar);
+        userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
+        if (deductionMorny == 0) {
+            Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
+            intent.putExtra("morny", morny);
+            intent.putExtra("userCard", userCard);
+            intent.putExtra("rechargeBean", rechargeBean);
+            startActivity(intent);
+        } else {
+            TipUtil.show(RechargeActivity.this, "鎸傚け鍗″悗鏈夎ˉ浜ら噾棰濓紒琛ヤ氦閲戦涓猴細" + MornyUtil.changeF2Y(deductionMorny) + "鍏冿紝璇︽儏鍙湪骞冲彴鏌ヨ銆�", new TipUtil.TipListener() {
+                @Override
+                public void onCancle() {
+                    Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
+                    intent.putExtra("morny", morny);
+                    intent.putExtra("userCard", userCard);
+                    intent.putExtra("rechargeBean", rechargeBean);
+                    startActivity(intent);
+                }
+            });
+        }
 
-
-        Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
-        intent.putExtra("morny", morny);
-        intent.putExtra("userCard", userCard);
-        intent.putExtra("rechargeBean", rechargeBean);
-        startActivity(intent);
     }
 
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java
index b1eac98..b787dc1 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java
@@ -8,6 +8,8 @@
 import com.dayu.baselibrary.utils.MornyUtil;
 import com.dayu.qiheonlinelibrary.card.UserCard;
 import com.dayu.qiheonlinelibrary.databinding.ActivityRechargeDetailQhlBinding;
+import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
+import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
 
 
 import java.util.Calendar;
@@ -24,10 +26,9 @@
     ActivityRechargeDetailQhlBinding binding;
     UserCard userCard;
     String statu;
-    String userName;
     String morny;
-    String rechageWater;
-    String cardNumber;
+    UserCardBean userCardBean;
+    RechargeBean rechargeBean;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -39,52 +40,53 @@
         try {
             userCard = (UserCard) getIntent().getSerializableExtra("userCard");
             statu = getIntent().getStringExtra("statu");
-            userName = getIntent().getStringExtra("userName");
             if (getIntent().hasExtra("morny")) {
                 morny = getIntent().getStringExtra("morny");
-                rechageWater = getIntent().getStringExtra("rechageWater");
+                rechargeBean = (RechargeBean) getIntent().getSerializableExtra("rechargeBean");
             }
-            if (getIntent().hasExtra("cardNumber")) {
-                cardNumber = getIntent().getStringExtra("cardNumber");
+            if (getIntent().hasExtra("userCardBean")) {
+                userCardBean = (UserCardBean) getIntent().getSerializableExtra("userCardBean");
             }
-            setUserData(userName, statu);
+            setUserData(statu);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
 
     }
 
-    private void setUserData(String userName, String statu) {
+    private void setUserData(String statu) {
         int balance = userCard.getBalance();
         if (!TextUtils.isEmpty(morny)) {
             binding.tip.setText("鍏呭�兼垚鍔燂紒");
             balance = userCard.getBalance();
+            binding.redName.setText("濮撳悕锛�" + rechargeBean.getUserName());
             binding.redRemainderMorny.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�");
-            binding.redRechargeWater.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(balance) + " 鍏�");
+            binding.redRechargeBalance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(balance) + " 鍏�");
+            binding.redRechargeElectric.setText("鍏呭�肩數閲忥細" + rechargeBean.getRechargeElectric() + " 搴�");
+            binding.redSurplusElectric.setText("鍓╀綑鐢甸噺锛�" + rechargeBean.getSurplusElectic() + " 搴�");
+            binding.redInitCode.setText("鍗″彿锛�" + rechargeBean.getCardNumber());
+            binding.redUserCode.setText("鐢ㄦ埛缂栧彿锛�" + rechargeBean.getUserCode());
         } else {
+            binding.redName.setText("濮撳悕锛�" + userCardBean.getUserName());
             binding.tip.setText("寮�鍗℃垚鍔燂紒");
-            balance = userCard.getBalance();
+            binding.redInitCode.setText("鍗″彿锛�" + userCardBean.getCardNumber());
+            binding.redUserCode.setText("鐢ㄦ埛缂栧彿锛�" + userCardBean.getUserCode());
             binding.redRemainderMorny.setVisibility(View.GONE);
-            binding.redRechargeWater.setVisibility(View.GONE);
+            binding.redRechargeBalance.setVisibility(View.GONE);
+            binding.redRechargeElectric.setVisibility(View.GONE);
+            binding.redSurplusElectric.setVisibility(View.GONE);
         }
-        binding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName);
-//        binding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(balance) + " 鍏�");
-//        binding.redSurplusWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�");
         binding.redStatu.setText("鍗$姸鎬侊細" + statu);
         if (userCard != null) {
-            binding.redInitCode.setText("褰撳墠鍗″彿锛�" + cardNumber);
             Calendar calendar = userCard.getRechargeDate();
             if (calendar != null) {
                 int year = calendar.get(Calendar.YEAR);
                 int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
                 int day = calendar.get(Calendar.DAY_OF_MONTH);
-
                 binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + month + day);
             } else {
                 binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�");
             }
-
-//            binding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + "");
         }
     }
 }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/NewCardAdapter.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/NewCardAdapter.java
index 55a79d2..7f05dde 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/NewCardAdapter.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/NewCardAdapter.java
@@ -50,9 +50,9 @@
         if (holder instanceof ViewHolder) {
             if (rechargeList.size() > 0) {
                 ((ViewHolder) holder).getBinding().userName.setText("鐢ㄦ埛鍚�:" + rechargeList.get(position).getUserName());
-//                ((ViewHolder) holder).getBinding().cardNumber.setText("鍗″彿:" + rechargeList.get(position).getCardNumber());
+                ((ViewHolder) holder).getBinding().cardNumber.setText("鍗″彿:" + rechargeList.get(position).getCardNumber());
                 ((ViewHolder) holder).getBinding().userNo.setText("韬唤璇佸彿:" + rechargeList.get(position).getUserID());
-//                ((ViewHolder) holder).getBinding().water.setText("鐢佃瘽:" + rechargeList.get(position).getPhone());
+                ((ViewHolder) holder).getBinding().water.setText("鐢佃瘽:" + rechargeList.get(position).getPhone());
                 ((ViewHolder) holder).getBinding().date.setText("鏃ユ湡:" + DateUtil.dateToStamp(rechargeList.get(position).getDate(), DateUtil.type1));
             }
         }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java
index 4cc68fa..64eaef3 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java
@@ -12,6 +12,26 @@
 
     public String peasantId;
 
+    public String peasantName;
+
+    public String peasantPhone;
+
+    public String getPeasantPhone() {
+        return peasantPhone;
+    }
+
+    public void setPeasantPhone(String peasantPhone) {
+        this.peasantPhone = peasantPhone;
+    }
+
+    public String getPeasantName() {
+        return peasantName;
+    }
+
+    public void setPeasantName(String peasantName) {
+        this.peasantName = peasantName;
+    }
+
     public String getPeasantId() {
         return peasantId;
     }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java
index c560862..6ce82f5 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java
@@ -16,10 +16,8 @@
  */
 public class ManageCard extends BaseCard implements Serializable {
     public String cardType = CardCommon.MANAGE_CRAD;//鍗$被鍨�
+    public int arerNumber;//鍖哄煙鍙�(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗)
 
-    public String getCardData() {
-        return cardData;
-    }
 
     /**
      * M1鍗$殑0鎵囧尯0鍧楅�氬父鐢ㄤ簬瀛樺偍涓�浜涘熀鏈殑鍗$墖淇℃伅
@@ -27,20 +25,15 @@
      */
     public String userCard; //鐢ㄦ埛鍗″彿
 
-    public byte type;//褰撳墠鐘舵�� 00锛氬厖鍊肩鐞嗘満鍐� 01:鎺у埗鍣ㄥ弽鍐欑殑  褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭
+    public byte cardWriteState;//褰撳墠鐘舵�� 00锛氬厖鍊肩鐞嗘満鍐� 01:鎺у埗鍣ㄥ弽鍐欑殑  褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭
 
-    public int totalElectric;//鎬荤敤鐢甸噺浣� 搴曚綅鍦ㄥ墠锛岄珮浣嶅湪鍚�  1浣嶅皬鏁扮偣  鍚�1浣嶅皬鏁扮偣鐨勬暣鏁�
 
-    public int getTotalElectric() {
-        return totalElectric;
+    public int getArerNumber() {
+        return arerNumber;
     }
 
-    public byte getType() {
-        return type;
-    }
-
-    public void setType(byte type) {
-        this.type = type;
+    public void setArerNumber(int arerNumber) {
+        this.arerNumber = arerNumber;
     }
 
     public String getUserCard() {
@@ -51,20 +44,26 @@
         this.userCard = userCard;
     }
 
+    public byte getCardWriteState() {
+        return cardWriteState;
+    }
+
+    public void setCardWriteState(byte cardWriteState) {
+        this.cardWriteState = cardWriteState;
+    }
 
     public static ManageCard getBean(List<byte[]> data) {
 
         if (data != null) {
             ManageCard manageCard = new ManageCard();
-
             byte[] zero = data.get(0);
+            byte[] arerNumberByte = new byte[4];
+            System.arraycopy(zero, 1, arerNumberByte, 0, arerNumberByte.length);
+            manageCard.arerNumber = HexUtil.get16To10LowHightByBytes(arerNumberByte);
             byte[] passWordByte = new byte[4];
             System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length);
             manageCard.setUserCard(HexUtil.bytesToHex(passWordByte));
-            manageCard.setType(zero[9]);
-            byte[] totalElectricByte = new byte[4];
-            System.arraycopy(zero, 10, totalElectricByte, 0, totalElectricByte.length);
-            manageCard.totalElectric = HexUtil.get16To10LowHightByBytes(totalElectricByte);
+            manageCard.setCardWriteState(zero[13]);
             return manageCard;
         }
         return null;
@@ -82,14 +81,20 @@
             byte[] data = new byte[16];
             data[0] = HexUtil.hexToByte(cardType);
 
-            byte[] cardDataByte = HexUtil.hexToByteArray(cardData);
-            System.arraycopy(cardDataByte, 0, data, 1, cardDataByte.length);
+            //鍖哄煙鍙�
+            byte[] arerNumberBytes = new byte[4];
+            byte[] arerNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(arerNumber));
+            System.arraycopy(arerNumberDatas, 0, arerNumberBytes, 0, arerNumberDatas.length);
+            if (arerNumberBytes != null) {
+                System.arraycopy(arerNumberBytes, 0, data, 1, arerNumberBytes.length);
+            }
 
             byte[] userCardByts = HexUtil.hexToByteArray(userCard);
             if (userCard != null) {
                 System.arraycopy(userCardByts, 0, data, 5, userCardByts.length);
             }
 
+            data[13] = cardWriteState;
             data[15] = getByteSum(data);
             return data;
         }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java
index eba18b0..c1646bd 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManagerToUserCard.java
@@ -1,9 +1,13 @@
 package com.dayu.qiheonlinelibrary.card;
 
+import com.dayu.baselibrary.tools.BcdUtil;
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.qiheonlinelibrary.utils.CardCommon;
+import com.tencent.bugly.crashreport.CrashReport;
 
 import java.io.Serializable;
+import java.util.Calendar;
+import java.util.List;
 
 /**
  * Created by Android Studio.
@@ -18,13 +22,83 @@
 
     public int arerNumber;//鍖哄煙鍙�(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗)
 
-    public int deviceNumberl;//璁惧缂栧彿(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗)
-    public short rechargeTimes;//鍏呭�兼鏁�
+    public String oldCardNumber;//鏃у崱鍗″彿
 
-    public int totalWater;//鐢ㄦ埛鎬荤敤姘撮噺  搴曚綅鍦ㄥ墠锛岄珮浣嶅湪鍚�2浣嶅皬鏁扮偣  鍚袱涓皬鏁扮偣鐨勬暣鏁�
+    public int cardWriteState;//绠$悊鍗¤繑鍐欐満鍒� 00:涓績鍐�01:鎺у埗鍣ㄨ繑鍐�
 
-    public int totalElectric;//鎬荤敤鐢甸噺浣� 搴曚綅鍦ㄥ墠锛岄珮浣嶅湪鍚�  1浣嶅皬鏁扮偣  鍚�1浣嶅皬鏁扮偣鐨勬暣鏁�
+    public int cardState;//鐜板満鍗$姸鎬�  00:鏃у崱 01:鏂板崱
 
+    public int balance;//鍓╀綑閲戦 搴曚綅鍦ㄥ墠  2浣嶅皬鏁扮偣锛屽崟浣嶅垎
+
+    public int surplusElecticity;//鍓╀綑鐢甸噺 搴曚綅鍦ㄥ墠  2浣嶅皬鏁扮偣銆�鍗曚綅绔嬫柟绫� (璺熶环鏍间竴鏍峰厛涔樹互100)
+
+    public int totalMorny;//绱鍏呭�奸噾棰�
+
+    public Calendar rechargeDate;// 璐按鏃堕棿 BCD
+
+    public Float electricPrice;//鐢靛崟浠凤紝淇濈暀涓変綅灏忔暟
+
+    /**
+     * 閫氳繃byte杞琤ean
+     *
+     * @param data
+     */
+    public static ManagerToUserCard getBean(List<byte[]> data) {
+        try {
+            ManagerToUserCard userCard = new ManagerToUserCard();
+            //绗�0鍧楄В鏋�
+            byte[] zero = data.get(0);
+            userCard.cardType = HexUtil.byteToHex(zero[0]);
+
+            byte[] arerNumberByte = new byte[4];
+            System.arraycopy(zero, 1, arerNumberByte, 0, arerNumberByte.length);
+            userCard.arerNumber = HexUtil.get16To10LowHightByBytes(arerNumberByte);
+
+            byte[] oldCardNumberByte = new byte[4];
+            System.arraycopy(zero, 5, oldCardNumberByte, 0, oldCardNumberByte.length);
+            userCard.oldCardNumber = HexUtil.bytesToHex(oldCardNumberByte);
+
+            byte[] cardWriteState = new byte[1];
+            System.arraycopy(zero, 13, cardWriteState, 0, cardWriteState.length);
+            userCard.cardWriteState = HexUtil.get16To10LowHightByBytes(cardWriteState);
+            byte[] cardState = new byte[1];
+            System.arraycopy(zero, 14, cardState, 0, cardState.length);
+            userCard.cardState = HexUtil.get16To10LowHightByBytes(cardState);
+            //绗�1鍧楄В鏋�
+            byte[] one = data.get(1);
+            byte[] balanceByte = new byte[4];
+            System.arraycopy(one, 0, balanceByte, 0, balanceByte.length);
+            userCard.balance = HexUtil.get16To10LowHightByBytes(balanceByte);
+            byte[] surplusWaterByte = new byte[4];
+            System.arraycopy(one, 4, surplusWaterByte, 0, surplusWaterByte.length);
+            userCard.surplusElecticity = HexUtil.get16To10LowHightByBytes(surplusWaterByte);
+
+            byte[] totalMorny = new byte[4];
+            System.arraycopy(one, 8, totalMorny, 0, totalMorny.length);
+            userCard.totalMorny = HexUtil.get16To10LowHightByBytes(totalMorny);
+
+            byte[] rechargeDateByte = new byte[3];
+            System.arraycopy(one, 12, rechargeDateByte, 0, rechargeDateByte.length);
+            int year = HexUtil.getBcdToInt(one[12]);
+            int month = HexUtil.getBcdToInt(one[13]);
+            int day = HexUtil.getBcdToInt(one[14]);
+            Calendar calendar = Calendar.getInstance();
+            calendar.set(2000 + year, month, day, 0, 0, 0);
+            userCard.rechargeDate = calendar;
+
+            byte[] two = data.get(2);
+            byte[] electricPriceByte = new byte[4];
+            System.arraycopy(two, 8, electricPriceByte, 0, electricPriceByte.length);
+            userCard.electricPrice = HexUtil.hexToFloatLowHigh(electricPriceByte);
+
+            return userCard;
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+
+    }
 
 
     /**
@@ -36,37 +110,29 @@
                 byte[] data = new byte[16];
                 data[0] = HexUtil.hexToByte(cardType);
                 //鍖哄煙鍙�
-                byte[] arerNumberBytes = new byte[2];
+                byte[] arerNumberBytes = new byte[4];
                 byte[] arerNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(arerNumber));
                 System.arraycopy(arerNumberDatas, 0, arerNumberBytes, 0, arerNumberDatas.length);
                 if (arerNumberBytes != null) {
                     System.arraycopy(arerNumberBytes, 0, data, 1, arerNumberBytes.length);
                 }
-                //璁惧缂栧彿
-                byte[] deviceNumberlBytes = new byte[2];
-                byte[] deviceNumberlDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(deviceNumberl));
-                System.arraycopy(deviceNumberlDatas, 0, deviceNumberlBytes, 0, deviceNumberlDatas.length);
-                if (deviceNumberlBytes != null) {
-                    System.arraycopy(deviceNumberlBytes, 0, data, 3, deviceNumberlBytes.length);
+                //绠$悊鍗¤繑鍐欐満鍒� 00:涓績鍐�01:鎺у埗鍣ㄨ繑鍐�
+                byte[] cardWriteStateBytes = new byte[1];
+                byte[] cardWriteStateDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(cardWriteState));
+                System.arraycopy(cardWriteStateDatas, 0, cardWriteStateBytes, 0, cardWriteStateDatas.length);
+                if (cardWriteStateBytes != null) {
+                    System.arraycopy(cardWriteStateBytes, 0, data, 13, cardWriteStateBytes.length);
                 }
-                //鍏呭�兼鏁�
-                byte rechargeTimesByte = HexUtil.hexToByte(HexUtil.get10to16(rechargeTimes));
-                data[5] = rechargeTimesByte;
 
-                //鐢ㄦ埛鎬荤敤姘撮噺
-                byte[] totalWaterBytes = new byte[4];
-                byte[] totalWaterDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalWater));
-                System.arraycopy(totalWaterDatas, 0, totalWaterBytes, 0, totalWaterDatas.length);
-                if (totalWaterBytes != null) {
-                    System.arraycopy(totalWaterBytes, 0, data, 6, totalWaterBytes.length);
+                //绠$悊鍗¤繑鍐欐満鍒� 00:涓績鍐�01:鎺у埗鍣ㄨ繑鍐�
+                byte[] cardStateBytes = new byte[1];
+                byte[] cardStateDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(cardState));
+                System.arraycopy(cardStateDatas, 0, cardStateBytes, 0, cardStateDatas.length);
+                if (cardStateBytes != null) {
+                    System.arraycopy(cardStateBytes, 0, data, 14, cardStateBytes.length);
                 }
-                //鎬荤敤鐢甸噺浣�
-                byte[] totalElectricBytes = new byte[4];
-                byte[] totalElectricDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalElectric));
-                System.arraycopy(totalElectricDatas, 0, totalElectricBytes, 0, totalElectricDatas.length);
-                if (totalElectricBytes != null) {
-                    System.arraycopy(totalElectricBytes, 0, data, 10, totalElectricBytes.length);
-                }
+
+
                 data[15] = getByteSum(data);
                 return data;
             } catch (Exception e) {
@@ -78,27 +144,208 @@
 
     }
 
+    /**
+     * 鐢ㄦ埛鍗�1鍧�
+     */
+    public class One extends BaseCard {
+
+        public byte[] toBytes() {
+            byte[] data = new byte[16];
+
+
+            try {
+                byte[] balanceBytes = new byte[4];
+                byte[] balanceDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(balance));
+                System.arraycopy(balanceDatas, 0, balanceBytes, 0, balanceDatas.length);
+                if (balanceBytes != null) {
+                    System.arraycopy(balanceBytes, 0, data, 0, balanceBytes.length);
+                }
+
+                byte[] surplusElecticityBytes = new byte[4];
+                byte[] surplusElecticityDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusElecticity));
+                System.arraycopy(surplusElecticityDatas, 0, surplusElecticityBytes, 0, surplusElecticityDatas.length);
+                if (surplusElecticityBytes != null) {
+                    System.arraycopy(surplusElecticityBytes, 0, data, 4, surplusElecticityBytes.length);
+                }
+                byte[] totalMornyBytes = new byte[4];
+                byte[] totalMornyDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalMorny));
+                System.arraycopy(totalMornyDatas, 0, totalMornyBytes, 0, totalMornyDatas.length);
+                if (totalMornyBytes != null) {
+                    System.arraycopy(totalMornyBytes, 0, data, 8, totalMornyBytes.length);
+                }
+
+                if (rechargeDate != null) {
+                    // 鑾峰彇骞淬�佹湀銆佹棩銆佹椂銆佸垎銆佺
+                    int year = (rechargeDate.get(Calendar.YEAR)) % 1000;
+                    int month = rechargeDate.get(Calendar.MONTH) + 1; // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
+                    int day = rechargeDate.get(Calendar.DAY_OF_MONTH);
+                    byte bcdYear = HexUtil.getIntToBCD(year)[0];
+                    byte bcdMonth = HexUtil.getIntToBCD(month)[0];
+                    byte bcdDay = HexUtil.getIntToBCD(day)[0];
+                    data[12] = bcdYear;
+                    data[13] = bcdMonth;
+                    data[14] = bcdDay;
+                }
+
+                data[15] = getByteSum(data);
+            } catch (Exception e) {
+                e.printStackTrace();
+                CrashReport.postCatchedException(e);
+            }
+            return data;
+        }
+
+
+    }
+
+    /**
+     * 鐢ㄦ埛鍗�2鍧�
+     */
+    public class Two extends BaseCard {
+        public byte[] toBytes() {
+            byte[] data = new byte[16];
+
+
+            try {
+                byte[] balanceBytes = new byte[4];
+                byte[] balanceDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(balance));
+                System.arraycopy(balanceDatas, 0, balanceBytes, 0, balanceDatas.length);
+                if (balanceBytes != null) {
+                    System.arraycopy(balanceBytes, 0, data, 0, balanceBytes.length);
+                }
+
+                byte[] surplusElecticityBytes = new byte[4];
+                byte[] surplusElecticityDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusElecticity));
+                System.arraycopy(surplusElecticityDatas, 0, surplusElecticityBytes, 0, surplusElecticityDatas.length);
+                if (surplusElecticityBytes != null) {
+                    System.arraycopy(surplusElecticityBytes, 0, data, 4, surplusElecticityBytes.length);
+                }
+
+                byte[] electricPriceBytes = new byte[4];
+                byte[] electricPriceDatas = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice));
+                System.arraycopy(electricPriceDatas, 0, electricPriceBytes, 0, electricPriceDatas.length);
+                if (electricPriceBytes != null) {
+                    System.arraycopy(electricPriceBytes, 0, data, 8, electricPriceBytes.length);
+                }
+
+                if (rechargeDate != null) {
+                    // 鑾峰彇骞淬�佹湀銆佹棩銆佹椂銆佸垎銆佺
+                    int year = (rechargeDate.get(Calendar.YEAR)) % 1000;
+                    int month = rechargeDate.get(Calendar.MONTH) + 1; // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
+                    int day = rechargeDate.get(Calendar.DAY_OF_MONTH);
+                    byte bcdYear = HexUtil.getIntToBCD(year)[0];
+                    byte bcdMonth = HexUtil.getIntToBCD(month)[0];
+                    byte bcdDay = HexUtil.getIntToBCD(day)[0];
+                    data[12] = bcdYear;
+                    data[13] = bcdMonth;
+                    data[14] = bcdDay;
+                }
+
+
+                data[15] = getByteSum(data);
+            } catch (Exception e) {
+                e.printStackTrace();
+                CrashReport.postCatchedException(e);
+            }
+            return data;
+        }
+    }
+
+    public byte[] getZeroBytes() {
+        ManagerToUserCard.Zero zero = new ManagerToUserCard.Zero();
+        return zero.toByte();
+    }
+
+    public byte[] getOneBytes() {
+        ManagerToUserCard.One zero = new ManagerToUserCard.One();
+        return zero.toBytes();
+    }
+
+    public byte[] getTwoBytes() {
+        ManagerToUserCard.Two zero = new ManagerToUserCard.Two();
+        return zero.toBytes();
+    }
+
+
+    public String getCardType() {
+        return cardType;
+    }
+
+    public void setCardType(String cardType) {
+        this.cardType = cardType;
+    }
+
+    public int getArerNumber() {
+        return arerNumber;
+    }
+
     public void setArerNumber(int arerNumber) {
         this.arerNumber = arerNumber;
     }
 
-    public void setDeviceNumberl(int deviceNumberl) {
-        this.deviceNumberl = deviceNumberl;
+
+
+    public int getCardWriteState() {
+        return cardWriteState;
     }
 
-    public void setRechargeTimes(short rechargeTimes) {
-        this.rechargeTimes = rechargeTimes;
+    public void setCardWriteState(int cardWriteState) {
+        this.cardWriteState = cardWriteState;
     }
 
-    public void setTotalWater(int totalWater) {
-        this.totalWater = totalWater;
+    public int getCardState() {
+        return cardState;
     }
 
-    public void setTotalElectric(int totalElectric) {
-        this.totalElectric = totalElectric;
+    public void setCardState(int cardState) {
+        this.cardState = cardState;
     }
-    public byte[] getZeroBytes() {
-        Zero zero = new Zero();
-        return zero.toByte();
+
+    public int getBalance() {
+        return balance;
+    }
+
+    public void setBalance(int balance) {
+        this.balance = balance;
+    }
+
+    public int getSurplusElecticity() {
+        return surplusElecticity;
+    }
+
+    public void setSurplusElecticity(int surplusElecticity) {
+        this.surplusElecticity = surplusElecticity;
+    }
+
+    public int getTotalMorny() {
+        return totalMorny;
+    }
+
+    public void setTotalMorny(int totalMorny) {
+        this.totalMorny = totalMorny;
+    }
+
+    public Calendar getRechargeDate() {
+        return rechargeDate;
+    }
+
+    public void setRechargeDate(Calendar rechargeDate) {
+        this.rechargeDate = rechargeDate;
+    }
+
+    public Float getElectricPrice() {
+        return electricPrice;
+    }
+
+    public void setElectricPrice(Float electricPrice) {
+        this.electricPrice = electricPrice;
+    }
+
+    public String getOldCardNumber() {
+        return oldCardNumber;
+    }
+
+    public void setOldCardNumber(String oldCardNumber) {
+        this.oldCardNumber = oldCardNumber;
     }
 }
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java
index e25d34a..922934a 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java
@@ -60,7 +60,7 @@
             System.arraycopy(zero, 5, userCodeByte, 0, userCodeByte.length);
             userCard.userCode= BcdUtil.bcdToStr(userCodeByte);
             byte[] userCodeNumber = new byte[2];
-            System.arraycopy(zero, 10, userCodeNumber, 0, userCodeNumber.length);
+            System.arraycopy(zero, 11, userCodeNumber, 0, userCodeNumber.length);
             userCard.userCodeNumber=HexUtil.get16To10LowHightByBytes(userCodeNumber);
             byte[] cardWriteState = new byte[1];
             System.arraycopy(zero, 13, cardWriteState, 0, cardWriteState.length);
@@ -150,7 +150,7 @@
                 byte[] cardStateDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(cardState));
                 System.arraycopy(cardStateDatas, 0, cardStateBytes, 0, cardStateDatas.length);
                 if (cardStateBytes != null) {
-                    System.arraycopy(cardStateBytes, 0, data, 13, cardStateBytes.length);
+                    System.arraycopy(cardStateBytes, 0, data, 14, cardStateBytes.length);
                 }
 
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
index 5d89eeb..10eaebd 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
@@ -9,6 +9,7 @@
 
 import com.dayu.baselibrary.tools.HexUtil;
 import com.dayu.baselibrary.utils.BaseCommon;
+import com.dayu.qiheonlinelibrary.card.ManagerToUserCard;
 import com.dayu.qiheonlinelibrary.card.UserCard;
 import com.dayu.qiheonlinelibrary.utils.CardCommon;
 
@@ -476,6 +477,71 @@
         }).start();
     }
 
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鍗′俊鎭�
+     *
+     * @return
+     */
+    public ManagerToUserCard getManagerToUserCardData() {
+        ManagerToUserCard managerToUserCard = null;
+        Map<String, List<byte[]>> map = new HashMap<>();
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                //閾炬帴NFC
+                mfc.connect();
+                //鑾峰彇鎵囧尯鏁伴噺
+                int count = mfc.getSectorCount();
+                //瀛樺偍绌洪棿
+                int size = mfc.getSize();
+                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                boolean flag = false;
+                List<byte[]> list = new ArrayList<>();
+                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                boolean isOpen = mfc.authenticateSectorWithKeyA(1, defauleKey);
+                if (!isOpen) {
+                    isOpen = mfc.authenticateSectorWithKeyA(1, companyKey);
+                }
+                if (isOpen) {
+                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                    int bCount = mfc.getBlockCountInSector(1);
+                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                    int bIndex = mfc.sectorToBlock(1);
+                    //String data1 = "";
+                    for (int j = 0; j < bCount; j++) {
+                        //璇诲彇鏁版嵁
+                        byte[] data = null;
+                        try {
+                            data = mfc.readBlock(bIndex);
+                            bIndex++;
+                            list.add(data);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    flag = true;
+                }
+
+                if (flag) {
+                    managerToUserCard = ManagerToUserCard.getBean(list);
+                    return managerToUserCard;
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                try {
+                    mfc.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return null;
+    }
+
     /**
      * 杩斿洖鐩戝惉绫�
      */
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java
index e5a691d..9eb104d 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java
@@ -136,6 +136,9 @@
                         list.add(DateUtil.dateToStamp(projectBean.getRechargeDate(), DateUtil.type2));
                         list.add(projectBean.getMorny());
                         list.add(projectBean.getBalance());
+                        list.add(projectBean.getRechargeElectric());
+                        list.add(projectBean.getSurplusElectic());
+                        list.add(projectBean.getUserCode());
                     } else {
                         UserCardBean userCardBean = (UserCardBean) objList.get(j);
                         list.add(userCardBean.getSerial());
@@ -144,6 +147,7 @@
                         list.add(userCardBean.getCardNumber());
                         list.add(DateUtil.dateToStamp(userCardBean.getDate(), DateUtil.type2));
                         list.add(userCardBean.getPhone());
+                        list.add(userCardBean.getUserCode());
                     }
 
                     for (int i = 0; i < list.size(); i++) {
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java
index 480f393..febce19 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java
@@ -41,7 +41,7 @@
         getWindow().setGravity(CENTER);
         setContentView(R.layout.dialog_chose_type);
         setCanceledOnTouchOutside(false);
-        setCancelable(false);
+//        setCancelable(false);
         RadioGroup radioGroup = findViewById(com.dayu.baselibrary.R.id.radioLibrary);
 
 
diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java
index 245828c..bb149e1 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java
@@ -10,6 +10,7 @@
 import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.widget.EditText;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.dayu.baselibrary.utils.ToastUtil;
@@ -47,6 +48,8 @@
 
         etName = findViewById(R.id.etName);
         etCardId = findViewById(R.id.etCardId);
+        ImageView close = findViewById(R.id.closeDialog);
+        close.setOnClickListener(v -> UserSearchDialog.this.dismiss());
         TextView ok = findViewById(R.id.pw_ok);
         ok.setOnClickListener(v -> {
             String name = etName.getText().toString();
diff --git a/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml
index 4b6e80c..21543a8 100644
--- a/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml
+++ b/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml
@@ -92,6 +92,7 @@
                 android:layout_marginTop="20dp"
                 android:padding="5dp"
                 android:text="鍒朵綔鐢ㄦ埛鐢甸噺鍗曚环鍗�"
+                android:visibility="gone"
                 android:textColor="@color/text_selecter_color"
                 android:textSize="@dimen/text_size" />
         </LinearLayout>
diff --git a/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml
index e922610..5f0ed99 100644
--- a/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml
+++ b/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml
@@ -49,12 +49,14 @@
             android:textColor="@color/text_selecter_color"
             android:textSize="@dimen/home_text_size" />
     </LinearLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="50dp"
         android:layout_gravity="center"
         android:layout_marginTop="30dp"
         android:orientation="horizontal">
+
         <TextView
             android:id="@+id/home_loss"
             android:layout_width="0dp"
@@ -64,6 +66,7 @@
             android:text="鎸傚け"
             android:textColor="@color/text_selecter_color"
             android:textSize="@dimen/home_text_size" />
+
         <TextView
             android:id="@+id/home_reportLoss"
             android:layout_width="0dp"
@@ -72,7 +75,9 @@
             android:gravity="center"
             android:text="瑙i櫎鎸傚け"
             android:textColor="@color/text_selecter_color"
-            android:textSize="@dimen/home_text_size" />
+            android:textSize="@dimen/home_text_size"
+            android:visibility="gone" />
+
         <TextView
             android:id="@+id/home_replacement"
             android:layout_width="0dp"
@@ -82,7 +87,18 @@
             android:text="琛ュ崱"
             android:textColor="@color/text_selecter_color"
             android:textSize="@dimen/home_text_size" />
+
+        <TextView
+            android:id="@+id/home_replacementWrite"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:text="娉垫湭鍏冲啓鍗�"
+            android:textColor="@color/text_selecter_color"
+            android:textSize="@dimen/home_text_size" />
     </LinearLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="50dp"
@@ -107,9 +123,9 @@
             android:layout_weight="1"
             android:gravity="center"
             android:text="鍙傛暟璁剧疆"
-            android:visibility="invisible"
             android:textColor="@color/text_selecter_color"
-            android:textSize="@dimen/home_text_size" />
+            android:textSize="@dimen/home_text_size"
+            android:visibility="gone" />
 
         <TextView
             android:id="@+id/home_my"
@@ -121,7 +137,6 @@
             android:textColor="@color/text_selecter_color"
             android:textSize="@dimen/home_text_size" />
     </LinearLayout>
-
 
 
 </LinearLayout>
\ No newline at end of file
diff --git a/qiheonlinelibrary/src/main/res/layout/activity_manager_read_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_manager_read_qhl.xml
index 8f0be95..f463916 100644
--- a/qiheonlinelibrary/src/main/res/layout/activity_manager_read_qhl.xml
+++ b/qiheonlinelibrary/src/main/res/layout/activity_manager_read_qhl.xml
@@ -10,7 +10,7 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/dimen_title_height"
         android:background="@color/title_bar_bg"
-        app:centerText="鍒朵綔绠$悊鍗�"
+        app:centerText="璇诲彇绠$悊鍗�"
         app:leftImage="@mipmap/icon_back" />
 
     <ScrollView
@@ -170,31 +170,11 @@
             android:layout_marginLeft="20dp"
             android:layout_marginTop="40dp"
             android:layout_marginRight="20dp"
-            android:text="绗竴姝ワ細鍒峰崱鍒朵綔绠$悊鍗�"
+            android:gravity="center"
+            android:text="璇峰湪鎺у埗鍣ㄥ埛鍗″悗鍦ㄦ鍒峰崱"
             android:textColor="@color/red"
             android:textSize="19sp" />
 
-        <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/titleBar"
-            android:layout_marginLeft="20dp"
-            android:layout_marginTop="10dp"
-            android:layout_marginRight="20dp"
-            android:text="绗簩姝ワ細鍦ㄦ帶鍒跺櫒绔埛鍗�"
-            android:textColor="@color/red"
-            android:textSize="19sp" />
-
-        <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/titleBar"
-            android:layout_marginLeft="20dp"
-            android:layout_marginTop="10dp"
-            android:layout_marginRight="20dp"
-            android:text="绗笁姝ワ細鐐瑰嚮涓嬩竴姝ユ寜閽浆鎹负鐢ㄦ埛鍗�"
-            android:textColor="@color/red"
-            android:textSize="19sp" />
 
         <ImageView
             android:layout_width="match_parent"
diff --git a/qiheonlinelibrary/src/main/res/layout/activity_manager_write_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_manager_write_qhl.xml
new file mode 100644
index 0000000..b9434d1
--- /dev/null
+++ b/qiheonlinelibrary/src/main/res/layout/activity_manager_write_qhl.xml
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <com.dayu.baselibrary.view.TitleBar
+        android:id="@+id/titleBar"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dimen_title_height"
+        android:background="@color/title_bar_bg"
+        app:centerText="鍒朵綔绠$悊鍗�"
+        app:leftImage="@mipmap/icon_back" />
+
+    <ScrollView
+        android:id="@+id/read_userLL"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@id/titleBar"
+        android:visibility="gone">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="20dp"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/red_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="濮撳悕锛�"
+                android:textSize="@dimen/text_size" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="鍗″彿锛�"
+                    android:textSize="@dimen/text_size" />
+
+                <TextView
+                    android:id="@+id/red_initCode"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text=""
+                    android:textSize="@dimen/text_size" />
+            </LinearLayout>
+
+
+            <TextView
+                android:id="@+id/red_remainder_blance"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鍓╀綑閲戦锛�"
+                android:textSize="@dimen/text_size" />
+
+            <TextView
+                android:id="@+id/red_remainder_water"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鍓╀綑姘撮噺锛�"
+                android:textSize="@dimen/text_size" />
+
+            <TextView
+                android:id="@+id/red_rechargeDate"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鏈�鍚庤喘姘存棩鏈燂細"
+                android:textSize="@dimen/text_size"
+                android:visibility="visible" />
+
+            <TextView
+                android:id="@+id/red_rechargeNumber"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鍏呭�兼鏁帮細"
+                android:textSize="@dimen/text_size"
+                android:visibility="visible" />
+
+            <TextView
+                android:id="@+id/red_total_water"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鎬荤敤姘撮噺锛�"
+                android:textSize="@dimen/text_size"
+                android:visibility="visible" />
+
+            <TextView
+                android:id="@+id/red_total_power"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鎬荤敤鐢甸噺锛�"
+                android:textSize="@dimen/text_size"
+                android:visibility="visible" />
+
+            <TextView
+                android:id="@+id/red_statu"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:text="鍗$姸鎬侊細"
+                android:textSize="@dimen/text_size" />
+
+        </LinearLayout>
+
+    </ScrollView>
+
+
+    <LinearLayout
+        android:id="@+id/read_cardTypeLL"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@id/titleBar"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:visibility="visible">
+
+        <TextView
+            android:id="@+id/read_cardTypeTV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:layout_centerVertical="true"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:textSize="30sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/read_cardDataTV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:layout_centerVertical="true"
+            android:layout_gravity="center"
+            android:layout_marginTop="20dp"
+            android:gravity="left"
+            android:textSize="20sp"
+            android:textStyle="bold" />
+    </LinearLayout>
+
+
+    <LinearLayout
+        android:id="@+id/read_imgLL"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@id/titleBar"
+        android:background="#ffffff"
+        android:orientation="vertical"
+        android:visibility="visible">
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/titleBar"
+            android:layout_marginLeft="20dp"
+            android:layout_marginTop="40dp"
+            android:layout_marginRight="20dp"
+            android:text="绗竴姝ワ細鍒峰崱鍒朵綔绠$悊鍗�"
+            android:textColor="@color/red"
+            android:textSize="19sp" />
+
+        <TextView
+            android:id="@+id/number2"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/titleBar"
+            android:layout_marginLeft="20dp"
+            android:layout_marginTop="10dp"
+            android:layout_marginRight="20dp"
+            android:visibility="gone"
+            android:text="绗簩姝ワ細鍦ㄦ帶鍒跺櫒绔埛鍗�,瀹屾垚鍚庣偣鍑讳笅涓�姝�"
+            android:textColor="@color/red"
+            android:textSize="19sp" />
+
+        <TextView
+            android:id="@+id/number3"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/titleBar"
+            android:layout_marginLeft="20dp"
+            android:layout_marginTop="10dp"
+            android:layout_marginRight="20dp"
+            android:visibility="gone"
+            android:text="绗笁姝ワ細杞崲涓虹敤鎴峰崱"
+            android:textColor="@color/red"
+            android:textSize="19sp" />
+
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_below="@id/textView"
+            android:scaleType="fitCenter"
+            android:src="@mipmap/nfc_write" />
+    </LinearLayout>
+
+    <com.wang.avi.AVLoadingIndicatorView
+        android:id="@+id/avi"
+        style="@style/AVLoadingIndicatorView"
+        android:layout_width="80dp"
+        android:layout_height="80dp"
+        android:layout_centerHorizontal="true"
+        android:layout_centerVertical="true"
+        android:visibility="gone"
+        app:indicatorColor="@color/title_bg"
+        app:indicatorName="BallClipRotatePulseIndicator" />
+
+    <TextView
+        android:id="@+id/manager_next"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:layout_alignParentBottom="true"
+        android:background="@color/title_bg"
+        android:gravity="center"
+        android:text="涓嬩竴姝�"
+        android:textColor="#000000"
+        android:textSize="@dimen/new_card_size" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/qiheonlinelibrary/src/main/res/layout/activity_recharge_detail_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_recharge_detail_qhl.xml
index 4799161..9a73c6d 100644
--- a/qiheonlinelibrary/src/main/res/layout/activity_recharge_detail_qhl.xml
+++ b/qiheonlinelibrary/src/main/res/layout/activity_recharge_detail_qhl.xml
@@ -23,13 +23,19 @@
             android:id="@+id/red_name"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-
             android:text="鐢ㄦ埛濮撳悕锛�"
             android:textSize="@dimen/text_size" />
 
 
         <TextView
             android:id="@+id/red_initCode"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="褰撳墠鍗″彿锛�"
+            android:textSize="@dimen/text_size" />
+        <TextView
+            android:id="@+id/red_userCode"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="15dp"
@@ -44,11 +50,11 @@
             android:text="鍏呭�奸噾棰濓細"
             android:textSize="@dimen/text_size" />
         <TextView
-            android:id="@+id/red_recharge_water"
+            android:id="@+id/red_recharge_balance"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="15dp"
-            android:text="鍏呭�兼按閲忥細"
+            android:text="鍓╀綑閲戦锛�"
             android:textSize="@dimen/text_size" />
         <TextView
             android:id="@+id/red_remainder_blance"
@@ -58,13 +64,22 @@
             android:text="鍓╀綑閲戦锛�"
             android:visibility="gone"
             android:textSize="@dimen/text_size" />
+
         <TextView
-            android:id="@+id/red_surplusWater"
+            android:id="@+id/red_rechargeElectric"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="15dp"
-            android:text="鍓╀綑姘撮噺锛�"
-            android:visibility="gone"
+            android:text="鍏呭�肩數閲忥細"
+            android:visibility="visible"
+            android:textSize="@dimen/text_size" />
+        <TextView
+            android:id="@+id/red_surplusElectric"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="鍓╀綑鐢甸噺锛�"
+            android:visibility="visible"
             android:textSize="@dimen/text_size" />
         <TextView
             android:id="@+id/red_rechargeDate"
diff --git a/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml
index 6b46f5f..e108d05 100644
--- a/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml
+++ b/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml
@@ -120,7 +120,26 @@
                         android:textSize="@dimen/new_card_size" />
 
                 </LinearLayout>
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="15dp"
+                    android:orientation="horizontal">
 
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="鐢ㄦ埛缂栧彿锛�"
+                        android:textSize="@dimen/text_size" />
+
+                    <TextView
+                        android:id="@+id/red_userCode"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:text=""
+                        android:textSize="@dimen/new_card_size" />
+
+                </LinearLayout>
                 <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
diff --git a/qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml b/qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml
index afdc1c2..9afca76 100644
--- a/qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml
+++ b/qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml
@@ -6,6 +6,14 @@
     android:gravity="center"
     android:orientation="vertical">
 
+    <ImageView
+        android:id="@+id/closeDialog"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:padding="10dp"
+        android:src="@mipmap/icon_close_dialog"
+        />
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -71,5 +79,7 @@
 
     </LinearLayout>
 
+
+
 </LinearLayout>
 

--
Gitblit v1.8.0