左晓为主开发手持机充值管理机
zuoxiao
2024-08-16 a44c47bc7f37245612635866adaddf5c98d41747
添加补打逻辑
联调修复bug
2个文件已添加
39个文件已修改
539 ■■■■ 已修改文件
app/build.gradle 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_login.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivity.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/CardAdapter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/RechargeAdapter.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/BaseResult.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoListResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoResult.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/LoginResult.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/OpenCardResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/PricePlanResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/RechargeResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/ReplaceCardResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/UserListResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/RechargeDao.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/RechargeBean.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiManager.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/res/layout/activity_my_qhl.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/res/layout/activity_newcard_list_qhl.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/res/layout/activity_recharge_detail_qhl.xml 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/res/layout/dialog_replace_price.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
qiheonlinelibrary/src/main/res/layout/qihe_line_item_recharge.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle
@@ -16,8 +16,8 @@
        applicationId "com.dayu.recharge"
        minSdk 23
        targetSdk 26
        versionCode 256
        versionName "2.5.6"
        versionCode 260
        versionName "2.6.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        ndk {
app/src/main/res/layout/activity_login.xml
@@ -43,6 +43,8 @@
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="请输入账号"
                android:maxLines="1"
                android:singleLine="true"
                android:text="zuoxiao" />
        </LinearLayout>
        <LinearLayout
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java
@@ -5,6 +5,7 @@
import android.content.Context;
import android.content.Intent;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.baselibrary.utils.ToastUtil;
import com.dayu.qiheonlinelibrary.bean.LoginResult;
import com.dayu.qiheonlinelibrary.bean.PricePlanResult;
@@ -40,6 +41,8 @@
    public String electriclePriceStr;//电价
    public String adminId;//登录的账号id
    public static QHOnLineApplication getInstance(Application context) {
        if (qhAloneApplication == null) {
            qhAloneApplication = new QHOnLineApplication();
@@ -61,11 +64,13 @@
        Map<String, Object> data = new HashMap<>();
        data.put("loginType", "account");
        ApiManager.getInstance().requestPostLoading(context, "api/login/getPubKey", String.class, null, new SubscriberListener<BaseResponse<String>>() {
        ApiManager.getInstance().requestPostLoading(context, "http://120.46.45.35:20081/api/login/getPubKey", String.class, null, new SubscriberListener<BaseResponse<String>>() {
            @Override
            public void onNext(BaseResponse<String> t) {
                if (t.isSuccess()) {
                    if (t.getData() != null) {
                    getToken(context, name, pw, t.getData());
                    }
                }
            }
        });
@@ -79,12 +84,14 @@
        String dateString = sdf.format(new Date());
        data.put("password", RSAUtile.encryptByPublicKey(pw + "@TIME@" + dateString, pubKey));
        data.put("username", name);
        ApiManager.getInstance().requestPostLoading(application, "api/login/login/getToken", String.class, data, new SubscriberListener<BaseResponse<String>>() {
        ApiManager.getInstance().requestPostLoading(application, "http://120.46.45.35:20081/api/login/login/getToken", String.class, data, new SubscriberListener<BaseResponse<String>>() {
            @Override
            public void onNext(BaseResponse<String> t) {
                if (t.isSuccess()) {
                    if (t.getData() != null) {
                    tokenStr = t.getData();
                    login(context, name, pw, pubKey);
                    }
                } else {
                    ToastUtil.show(t.getMsg());
                }
@@ -100,11 +107,13 @@
        String dateString = sdf.format(new Date());
        data.put("password", RSAUtile.encryptByPublicKey(pw + "@TIME@" + dateString, pubKey));
        data.put("username", name);
        ApiManager.getInstance().requestPostLoading(application, "api/login/login", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
        ApiManager.getInstance().requestPostLoading(application, "http://120.46.45.35:20081/api/login/login", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
            @Override
            public void onNext(BaseResponse<LoginResult> t) {
                if (t.isSuccess()) {
                    try {
                    if (t.getData() != null && t.getData().getOtherData() != null) {
                        LoginResult.OtherData otherData = t.getData().getOtherData();
                        String tenantAdnm = otherData.getTenantAdnm();
                        List<String> adnmList = otherData.getAdnmList();
@@ -116,9 +125,16 @@
                            adcd = t.getData().getOtherData().getAdcdList().get(0);
                            arerNumber = t.getData().getOtherData().getAdcdList().get(0).substring(4);
                        }
                    }
                            adminId = t.getData().getUserId();
                    context.startActivity(new Intent(context, com.dayu.qiheonlinelibrary.activity.HomeActivity.class));
                    ((Activity) context).finish();
                        } else {
                            TipUtil.show((Activity) context, "登录失败,请重试");
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                } else {
                    ToastUtil.show(t.getMsg());
                }
@@ -132,15 +148,16 @@
    public void getPricePlanVo(Context context) {
        Map<String, Object> data = new HashMap<>();
        data.put("priceMethod", 2);
        ApiManager.getInstance().requestPost(context, "api/sjgg/water/waterPricePlan/pageWaterPricePlanVo", PricePlanResult.class, data, new SubscriberListener<BaseResponse<PricePlanResult>>() {
        ApiManager.getInstance().requestPostHideLoading(context, "water/waterPricePlan/pageWaterPricePlanVo", PricePlanResult.class, data, new SubscriberListener<BaseResponse<PricePlanResult>>() {
            @Override
            public void onNext(BaseResponse<PricePlanResult> t) {
                if (t.isSuccess()) {
                    if (t.getData() != null) {
                    planId = t.getData().getRecords().get(0).getPlanId();
                    electriclePriceStr = t.getData().getRecords().get(0).getElectricityPrice();
                }
            }
            }
        });
    }
}
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java
@@ -6,7 +6,6 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import com.dayu.baselibrary.activity.BaseActivity;
import com.dayu.baselibrary.utils.BaseCommon;
import com.dayu.baselibrary.utils.DeviceUtils;
import com.dayu.baselibrary.utils.TipUtil;
@@ -16,6 +15,7 @@
import com.dayu.qiheonlinelibrary.bean.CardInfoListResult;
import com.dayu.qiheonlinelibrary.bean.UserListResult;
import com.dayu.qiheonlinelibrary.databinding.ActivityCardSearchQhlBinding;
import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
import com.dayu.qiheonlinelibrary.net.ApiManager;
import com.dayu.qiheonlinelibrary.net.BaseResponse;
import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
@@ -50,6 +50,8 @@
    ConfirmDialog confirmDialog;
    CardInfoListResult.Records mRecord;
    UserCardBean userCardBean;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -57,6 +59,7 @@
        setContentView(binding.getRoot());
        pearsontId = this.getIntent().getStringExtra("pearsontId");
        type = this.getIntent().getIntExtra("type", 0);
        userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
        initView();
        selectUser(true);
    }
@@ -142,20 +145,24 @@
        data.put("peasantId", pearsontId);
        data.put("current", page);
        data.put("pageSize", size);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/info/getIccardPeasantVoList", CardInfoListResult.class, data, new SubscriberListener<BaseResponse<CardInfoListResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/info/getIccardPeasantVoList", CardInfoListResult.class, data, new SubscriberListener<BaseResponse<CardInfoListResult>>() {
            @Override
            public void onNext(BaseResponse<CardInfoListResult> t) {
                if (t.isSuccess()) {
                    if (t.getData().getTotal() == records.size()) {
                    if (t.getData() != null) {
                        if (t.getData().getTotal() == records.size() || size > t.getData().getTotal()) {
                        myRefreshLayout.finishLoadMoreWithNoMoreData();
                    } else {
                        records.addAll(t.getData().getRecords());
                    }
                        records.addAll(t.getData().getRecords());
                    adapter.notifyDataSetChanged();
                    myRefreshLayout.finishLoadMore();
                    if (isRefresh) {
                        myRefreshLayout.finishRefresh();
                    }
                    }
                } else {
                    TipUtil.show(CardSearchActivity.this, t.getMsg());
                }
            }
        });
@@ -169,20 +176,25 @@
        Map<String, Object> data = new HashMap<>();
        data.put("iccardInfoId", iccardInfoId);
        data.put("equipCode", DeviceUtils.getSN());
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/reportLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reportLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
            @Override
            public void onNext(BaseResponse<UserListResult> t) {
                if (t.isSuccess()) {
                    if (t.getData() != null) {
                    if (type == BaseCommon.LOSS_CARD) {
                        TipUtil.show(CardSearchActivity.this, "挂失成功", () -> {
                            CardSearchActivity.this.finish();
                                if (UserSearchActivity.userSearchActivity != null) {
                                    UserSearchActivity.userSearchActivity.finish();
                                    UserSearchActivity.userSearchActivity = null;
                                }
                        });
                    } else if (type == BaseCommon.REPLACE_NO_CARD) {
                        startNFCActivit(iccardInfoId);
                    } else if (type == BaseCommon.REPLACE_HAS_CARD) {
                        startNFCActivit(iccardInfoId);
                            startManagerActivity(iccardInfoId, mRecord.getIccardNum());
                    }
                    }
                } else {
                    ToastUtil.show(t.getMsg());
                }
@@ -198,7 +210,7 @@
        Map<String, Object> data = new HashMap<>();
        data.put("iccardInfoId", iccardInfoId);
        data.put("equipCode", DeviceUtils.getSN());
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/releaseLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/releaseLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
            @Override
            public void onNext(BaseResponse<UserListResult> t) {
                if (t.isSuccess()) {
@@ -222,6 +234,7 @@
        Intent intent = new Intent(CardSearchActivity.this, NFCWreatActivity.class);
        intent.putExtra("iccardInfoId", iccardInfoId);
        intent.putExtra("replaceType", type);
        intent.putExtra("userCardBean", userCardBean);
        startActivity(intent);
        CardSearchActivity.this.finish();
    }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerReadActivity.java
@@ -5,12 +5,14 @@
import android.os.Bundle;
import android.view.LayoutInflater;
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.BaseCommon;
import com.dayu.baselibrary.utils.TipUtil;
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.dbBean.UserCardBean;
import com.dayu.qiheonlinelibrary.net.ApiManager;
import com.dayu.qiheonlinelibrary.net.BaseResponse;
import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
@@ -26,7 +28,7 @@
 * author: zuo
 * Date: 2024-08-12
 * Time: 20:10
 * 备注:
 * 备注: 读取管理卡,从控制器读卡后在此界面读卡
 */
public class ManagerReadActivity extends BaseNfcActivity {
@@ -39,6 +41,8 @@
    CardInfoResult cardInfoResult;
    ManagerToUserCard managerToUserCard;
    UserCardBean userCardBean = new UserCardBean();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -79,7 +83,10 @@
                managerToUserCard = NfcReadHelper.getInstence(intent, this).getManagerToUserCardData();
                if (managerToUserCard != null) {
                    if (QHOnLineApplication.getInstance().arerNumber.equalsIgnoreCase(String.valueOf(managerToUserCard.getArerNumber()))) {
                        getUserInfoAndCardInfo(managerToUserCard.getOldCardNumber());
                        String oldCardNumber = managerToUserCard.getOldCardNumber();
                        oldCardNumber = HexUtil.spaceHex(oldCardNumber);
                        oldCardNumber = HexUtil.HighLowHex(oldCardNumber);
                        getUserInfoAndCardInfo(oldCardNumber);
                    } else {
                        TipUtil.show(this, "不是本区域卡!");
                    }
@@ -105,20 +112,31 @@
        Map<String, Object> data = new HashMap<>();
        //ic卡信息id
        data.put("iccardNum", iccardCode);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
            @Override
            public void onNext(BaseResponse<CardInfoResult> t) {
                String state = "";
                if (t.isSuccess()) {
                    if (t.getData() != null) {
                    cardInfoResult = t.getData();
                        userCardBean.setUserName(cardInfoResult.getPeasantName());
                        userCardBean.setUserID(cardInfoResult.getPeasantIdNumber());
                        userCardBean.setPhone(cardInfoResult.getPeasantPhone());
                        userCardBean.setPersonId(cardInfoResult.getPeasantId());
                        userCardBean.setAddressCode(cardInfoResult.getAdcd());
                        userCardBean.setAddressName(cardInfoResult.getAdcdName());
                    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);
                            intent.putExtra("userCardBean", userCardBean);
                        startActivity(intent);
                        ManagerReadActivity.this.finish();
                    });
                    } else {
                        TipUtil.show(ManagerReadActivity.this, "未查询到该卡信息,请检查。");
                    }
                }
            }
        });
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ManagerWriteActivity.java
@@ -8,6 +8,7 @@
import android.view.LayoutInflater;
import android.view.View;
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.BaseCommon;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.baselibrary.view.ConfirmDialog;
@@ -64,6 +65,11 @@
                } else {
                    TipUtil.show(this, "请在控制器端刷卡后在首页点击泵未关写卡后继续补卡!", () -> {
                        ManagerWriteActivity.this.finish();
                        if (UserSearchActivity.userSearchActivity != null) {
                            UserSearchActivity.userSearchActivity.finish();
                            UserSearchActivity.userSearchActivity = null;
                        }
                    });
                }
@@ -95,6 +101,8 @@
        }
        ManageCard manageCard = new ManageCard();
        manageCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber));
        oldCardNumber = HexUtil.spaceHex(oldCardNumber);
        oldCardNumber = HexUtil.HighLowHex(oldCardNumber);
        manageCard.setUserCard(oldCardNumber);
        manageCard.setCardWriteState((byte) 0);
        if (NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0)) {
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java
@@ -149,7 +149,7 @@
                        List listData = new ArrayList();
                        try {
                            if (isRechargeList) {
                                listData = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime);
                                listData = asynchBaseDao.rechargeDao().ansyFindByTime(QHOnLineApplication.getInstance().adminId, beginTime, endTime);
                            } else {
                                listData = asynchBaseDao.userCardDao().findByTime(beginTime, endTime);
                            }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java
@@ -15,6 +15,7 @@
import com.dayu.baselibrary.utils.DeviceUtils;
import com.dayu.baselibrary.utils.MornyUtil;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.baselibrary.utils.ToastUtil;
import com.dayu.baselibrary.view.ConfirmDialog;
import com.dayu.baselibrary.view.TitleBar;
import com.dayu.qiheonlinelibrary.QHOnLineApplication;
@@ -44,10 +45,12 @@
import com.dayu.qiheonlinelibrary.tools.WriteCardUtils;
import com.dayu.qiheonlinelibrary.utils.CardCommon;
import com.dayu.qiheonlinelibrary.utils.NFCWreatUtils;
import com.dayu.qiheonlinelibrary.utils.PrintUtils;
import com.dayu.qiheonlinelibrary.view.ReplacementPriceDialog;
import com.tencent.bugly.crashreport.CrashReport;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -176,6 +179,9 @@
                userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
                isUser = true;
            }
            if (this.getIntent().hasExtra("userCardBean")) {
                userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean");
            }
            if (this.getIntent().hasExtra("cleanUserCard")) {
                cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
                binding.cardData.setText("制作删除全部用户卡");
@@ -206,9 +212,12 @@
                morny = this.getIntent().getStringExtra("morny");
                userName = this.getIntent().getStringExtra("userName");
                rechargeBean = (RechargeBean) this.getIntent().getSerializableExtra("rechargeBean");
//                rechageWater = this.getIntent().getStringExtra("rechageWater");
                if (MornyUtil.changeY2F(rechargeBean.getDeductionMorny()) == 0) {
                binding.cardData.setText("充值金额:" + morny + " 元");
                } else {
                    int realityMorny = MornyUtil.changeY2F(morny) - MornyUtil.changeY2F(rechargeBean.getDeductionMorny());
                    binding.cardData.setText("充值金额:" + morny + " 元\n" + "补扣金额:" + rechargeBean.getDeductionMorny() + " 元\n实际到账金额:" + MornyUtil.changeF2Y(realityMorny) + " 元");
                }
            }
            if (this.getIntent().hasExtra("iccardInfoId")) {
                iccardInfoId = this.getIntent().getStringExtra("iccardInfoId");
@@ -365,42 +374,6 @@
    }
    /**
     * 打印机相关信息
     *
     * @param rechargeBean
     */
    private void setPrinterData(RechargeBean rechargeBean) {
        try {
            StringBuffer data = new StringBuffer();
            if (rechargeBean != null) {
                data.append("*****************************" + "\n");
                data.append("设备序列号:" + rechargeBean.getSerial() + "\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("充值电量:" + rechargeBean.getRechargeElectric() + " 度" + "\n");
                data.append("剩余电量:" + rechargeBean.getRechargeElectric() + " 度" + "\n");
                data.append("日   期:" + DateUtil.dateToStamp(rechargeBean.getRechargeDate(), DateUtil.type2) + "\n\n");
                data.append("*****************************");
            }
            float size = 26;
            try {
                AidlUtil.getInstance().printText(data.toString(), size, true, false);
                AidlUtil.getInstance().print3Line();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
            CrashReport.postCatchedException(e);
        }
    }
    void startAnim() {
        binding.avi.show();
        // or avi.smoothToShow();
@@ -437,7 +410,7 @@
        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);
@@ -510,9 +483,10 @@
        data.put("iccardNum", iccardNum);//物理卡号
        data.put("iccardType", iccardType);
        data.put("peasantId", peasantId);
        data.put("adcd", QHOnLineApplication.getInstance().adcd);
        //工本费
        data.put("rechargeCardMoney", rechargeMoney);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/openCard", OpenCardResult.class, data, new SubscriberListener<BaseResponse<OpenCardResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/openCard", OpenCardResult.class, data, new SubscriberListener<BaseResponse<OpenCardResult>>() {
            @Override
            public void onNext(BaseResponse<OpenCardResult> t) {
                if (t.isSuccess()) {
@@ -548,7 +522,7 @@
        data.put("writeCardStatus", writeCardStatus);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/openCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/openCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
            @Override
            public void onNext(BaseResponse<LoginResult> t) {
                if (t.isSuccess()) {
@@ -573,7 +547,7 @@
        data.put("writeCardStatus", writeCardStatus);
        data.put("writeCardStatus", writeCardStatus);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/rechargeCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/rechargeCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
            @Override
            public void onNext(BaseResponse<LoginResult> t) {
                if (t.isSuccess()) {
@@ -584,12 +558,15 @@
                        e.printStackTrace();
                    }
                    //   打印相关
                    setPrinterData(rechargeBean);
                    PrintUtils.printerData(rechargeBean);
                    startDetailActivity("终端写卡");
                } else {
                    ToastUtil.show(t.getMsg());
                }
            }
        });
    }
    /**
     * 补卡逻辑
     */
@@ -620,11 +597,15 @@
        data.put("iccardInfoId", iccardInfoId);
        //新卡的物理卡号
        data.put("iccardNum", cardNumber);
        if (!TextUtils.isEmpty(iccardBalanceMoney)) {
        //卡内剩余金额
        data.put("iccardBalanceMoney", iccardBalanceMoney);
        }
        if (!TextUtils.isEmpty(iccardBalanceElectric)) {
        //卡内剩余电量
        data.put("iccardBalanceElectric", iccardBalanceElectric);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/reissueOpenCard", ReplaceCardResult.class, data, new SubscriberListener<BaseResponse<ReplaceCardResult>>() {
        }
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reissueOpenCard", ReplaceCardResult.class, data, new SubscriberListener<BaseResponse<ReplaceCardResult>>() {
            @Override
            public void onNext(BaseResponse<ReplaceCardResult> t) {
                if (t.isSuccess()) {
@@ -642,6 +623,10 @@
                    userCard.setRechargeDate(Calendar.getInstance());
                    userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
                    if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) {
                        userCardBean.setCardNumber(cardNumber);
                        userCardBean.setUserCode(userCode);
                        userCardBean.setDate(System.currentTimeMillis());
                        baseDao.userCardDao().insert(userCardBean);
                        confromReplaceCard(replaceCardResult.getIccardRechargeRecordId(), 0);
                    } else {
                        TipUtil.show(NFCWreatActivity.this, "写卡失败,请重试");
@@ -649,6 +634,8 @@
                    //   打印相关
//                    setPrinterData(rechargeBean);
//                    startDetailActivity(rechargeBean.getUserName(), "终端写卡");
                } else {
                    ToastUtil.show(t.getMsg());
                }
            }
        });
@@ -663,15 +650,19 @@
    private void confromReplaceCard(String iccardRechargeRecordId, int writeCardStatus) {
        Map<String, Object> data = new HashMap<>();
        data.put("equipCode", DeviceUtils.getSN());
//        data.put("iccardRechargeRecordId", iccardRechargeRecordId);
        data.put("iccardRechargeRecordId", iccardRechargeRecordId);
        //写卡状态 0 写卡成功 1 待写卡 2 写卡失败
        data.put("writeCardStatus", writeCardStatus);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/reissueOpenCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reissueOpenCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
            @Override
            public void onNext(BaseResponse<LoginResult> t) {
                if (t.isSuccess()) {
                    TipUtil.show(NFCWreatActivity.this, "补卡成功!", () -> {
                        if (UserSearchActivity.userSearchActivity != null) {
                            UserSearchActivity.userSearchActivity.finish();
                            UserSearchActivity.userSearchActivity = null;
                        }
                        NFCWreatActivity.this.finish();
                    });
                }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java
@@ -311,7 +311,7 @@
        data.put("peasantIdNumber", peasantIdNumber);
        data.put("current", 1);
        data.put("pageSize", 10);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/base/peasant/pagePeasantVo", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "base/peasant/pagePeasantVo", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
            @Override
            public void onNext(BaseResponse<UserListResult> t) {
                if (t.isSuccess()) {
@@ -379,7 +379,7 @@
        data.put("peasantCode", "");
        data.put("peasantName", peasantName);
        data.put("peasantPhone", peasantPhone);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/base/peasant/savePeasant", AddUserResult.class, data, new SubscriberListener<BaseResponse<AddUserResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "base/peasant/savePeasant", AddUserResult.class, data, new SubscriberListener<BaseResponse<AddUserResult>>() {
            @Override
            public void onNext(BaseResponse<AddUserResult> t) {
                if (t.isSuccess()) {
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardListActivity.java
@@ -78,7 +78,7 @@
        newcardListBinding.recyclerView.setLayoutManager(layoutManager);
        newcardListBinding.recyclerView.setAdapter(adapter);
        int totale = baseDao.userCardDao().getUserTotale();
        newcardListBinding.userTotal.setText("开户数:" + totale + "");
        newcardListBinding.userTotal.setText("开卡数:" + totale + "");
    }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java
@@ -115,11 +115,12 @@
                break;
            case CardCommon.MANAGE_CRAD://管理卡
                ManageCard manageCard = ManageCard.getBean(data);
                if (manageCard != null) {
                viweGone(false);
                userCardStr = manageCard.getUserCard().toUpperCase();
                redCardBinding.readCardTypeTV.setText("当前为管理卡" + "\n\n"
                        + "原始卡号:" + userCardStr);
                }
                break;
            case CardCommon.CLEAN_CARD_TYPE:
                viweGone(false);
@@ -230,12 +231,14 @@
        Map<String, Object> data = new HashMap<>();
        //ic卡信息id
        data.put("iccardNum", iccardCode);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
            @Override
            public void onNext(BaseResponse<CardInfoResult> t) {
                String state = "";
                if (t.isSuccess()) {
                if (t.isSuccess() && t.getData() instanceof CardInfoResult) {
                    setUserData(t.getData());
                } else {
                    TipUtil.show(ReadCardAcitivy.this, "从获取平台卡信息失败!");
                }
            }
        });
@@ -249,7 +252,7 @@
            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.redTotalMorny.setText(cardInfoResult.getTotalRechargeMoney() + "元");
            redCardBinding.redPhone.setText(cardInfoResult.getPeasantPhone());
            redCardBinding.redCodeId.setText(cardInfoResult.getPeasantIdNumber());
            if (cardInfoResult.getIccardStatus() == 0) {
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java
@@ -112,15 +112,15 @@
    }
    private void setUserData(String cardNumber, String userName, String lastRechargeTime, float iccardBalanceMoney, List<byte[]> data) {
        String state = "";
    private void setUserData(String cardNumber, String userName, String lastRechargeTime, List<byte[]> data) {
        if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
            state = "终端写卡";
            setCardState("终端写卡");
            binding.rechargeLL.setVisibility(View.VISIBLE);
            binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
            binding.redStatu.setTextColor(this.getResources().getColor(R.color.black));
        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
            setCardState("未刷卡关泵,当前不可充值");
            TipUtil.show(RechargeActivity.this, "未刷卡关泵,当前不可充值");
        } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
            setCardState("叠加充值");
        } else {
@@ -135,15 +135,13 @@
            binding.rechargeReadLL.setVisibility(View.GONE);
            binding.rechargeTextLL.setVisibility(View.VISIBLE);
            binding.userName.setText(userName);
            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) + " 元");
                binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 元");
                binding.redBalanceElectric.setText("充值后剩余电量:" + MornyUtil.changeF2Y(userCard.getSurplusElecticity()) + " 度");
            }
            binding.redRechargeElectric.setText("电量单价:" + QHOnLineApplication.getInstance().electriclePriceStr + "元/度");
        } else {
@@ -229,6 +227,10 @@
        //充值补扣金额=充值金额+充值前读取的卡内余额-充值回调返回卡内余额
        int deductionMorny = MornyUtil.changeY2F(morny) + mOldUserCard.getBalance() - MornyUtil.changeY2F(balance);
        if (MornyUtil.changeY2F(morny) < deductionMorny) {
            TipUtil.show(RechargeActivity.this, "当前充值金额小于补扣金额,补扣金额为" + MornyUtil.changeF2Y(deductionMorny) + "元,充值金额应大于补扣金额!");
            return;
        }
        //添加充值信息
        rechargeBean = new RechargeBean();
@@ -250,6 +252,8 @@
        rechargeBean.setState(1);
        rechargeBean.setOrderId(iccardRechargeRecordId);
        rechargeBean.setDeductionMorny(MornyUtil.changeF2Y(deductionMorny));
        rechargeBean.setAdminId(QHOnLineApplication.getInstance().adminId);
        userCard.setCardWriteState(0);
        userCard.setCardState(1);
@@ -257,8 +261,7 @@
        calendar.setTimeInMillis(time);
        userCard.setBalance(MornyUtil.changeY2F(String.valueOf(balance)));
        userCard.setSurplusElecticity(MornyUtil.changeY2F(String.valueOf(iccardBalanceElectric)));
        String sumMorny = MornyUtil.sumPrice(Float.valueOf(MornyUtil.changeF2Y(userCard.getTotalMorny())), Float.valueOf(morny));
        userCard.setTotalMorny(MornyUtil.changeY2F(sumMorny));
        userCard.setTotalMorny(MornyUtil.changeY2F(String.valueOf(totalMorny)));
        userCard.setRechargeDate(calendar);
        userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr));
        if (deductionMorny == 0) {
@@ -302,12 +305,18 @@
        data.put("iccardBalanceAmonunt", "0");
        //卡内剩余电量
        data.put("iccardBalanceElectric", MornyUtil.changeF2Y(userCard.getSurplusElecticity()));
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/rechargeCard", RechargeResult.class, data, new SubscriberListener<BaseResponse<RechargeResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/rechargeCard", RechargeResult.class, data, new SubscriberListener<BaseResponse<RechargeResult>>() {
            @Override
            public void onNext(BaseResponse<RechargeResult> t) {
                if (t.isSuccess()) {
                    if (t.getData() != null) {
                    RechargeResult rechargeResult = t.getData();
                    startNfcActivity(morny, rechargeResult.getIccardBalanceMoney(), rechargeResult.getRechargeElectricAmount(), rechargeResult.getIccardBalanceElectric(), rechargeResult.getTotalRechargeMoney(), rechargeResult.getIccardRechargeRecordId());
                    } else {
                        TipUtil.show(RechargeActivity.this, "充值失败请重试!");
                    }
                } else {
                    TipUtil.show(RechargeActivity.this, t.getMsg());
                }
            }
        });
@@ -323,18 +332,19 @@
        Map<String, Object> data = new HashMap<>();
        //ic卡信息id
        data.put("iccardNum", iccardCode);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() {
            @Override
            public void onNext(BaseResponse<CardInfoResult> t) {
                String state = "";
                if (t.isSuccess()) {
                    if (t.getData() != null) {
                    //ic卡状态 0 正常 1 已注销 2 已挂失
                    if (t.getData().getIccardStatus() == 0) {
                        List<byte[]> data = NfcReadHelper.getInstence(intent, RechargeActivity.this).getOnesectorData();
                        if (!data.isEmpty()) {
                            if (!TextUtils.isEmpty(cardNumber)) {
                                cardInfoResult = t.getData();
                                setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime(), cardInfoResult.getIccardBalanceMoney(), data);
                                    setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime(), data);
                            } else {
                                TipUtil.show(RechargeActivity.this, "读取卡片失败,请重新贴卡");
                            }
@@ -346,8 +356,12 @@
                    } else {
                        TipUtil.show(RechargeActivity.this, "当前卡已挂失");
                    }
                    } else {
                        TipUtil.show(RechargeActivity.this, "当前卡片错误,未能查到该卡信息!");
                    }
                } else {
                    TipUtil.show(RechargeActivity.this, t.getMsg());
                }
            }
        });
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java
@@ -10,6 +10,7 @@
import com.dayu.qiheonlinelibrary.databinding.ActivityRechargeDetailQhlBinding;
import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
import com.dayu.qiheonlinelibrary.utils.PrintUtils;
import java.util.Calendar;
@@ -38,10 +39,13 @@
        setContentView(binding.getRoot());
        try {
            if (getIntent().hasExtra("userCard")) {
            userCard = (UserCard) getIntent().getSerializableExtra("userCard");
            }
            if (getIntent().hasExtra("statu")) {
            statu = getIntent().getStringExtra("statu");
            if (getIntent().hasExtra("morny")) {
                morny = getIntent().getStringExtra("morny");
            }
            if (getIntent().hasExtra("rechargeBean")) {
                rechargeBean = (RechargeBean) getIntent().getSerializableExtra("rechargeBean");
            }
            if (getIntent().hasExtra("userCardBean")) {
@@ -55,18 +59,27 @@
    }
    private void setUserData(String statu) {
        int balance = userCard.getBalance();
        if (!TextUtils.isEmpty(morny)) {
        if (rechargeBean != null) {
            binding.tip.setText("充值成功!");
            balance = userCard.getBalance();
            binding.redName.setText("姓名:" + rechargeBean.getUserName());
            binding.redRemainderMorny.setText("充值金额:" + morny + " 元");
            binding.redRechargeBalance.setText("剩余金额:" + MornyUtil.changeF2Y(balance) + " 元");
            binding.redRemainderMorny.setText("充值金额:" + rechargeBean.getMorny() + " 元");
            binding.redRechargeBalance.setText("剩余金额:" + rechargeBean.getBalance() + " 元");
            binding.redRechargeElectric.setText("充值电量:" + rechargeBean.getRechargeElectric() + " 度");
            binding.redSurplusElectric.setText("剩余电量:" + rechargeBean.getSurplusElectic() + " 度");
            binding.redInitCode.setText("卡号:" + rechargeBean.getCardNumber());
            binding.redUserCode.setText("用户编号:" + rechargeBean.getUserCode());
            if (MornyUtil.changeY2F(rechargeBean.getDeductionMorny()) > 0) {
                binding.redDeductionMorny.setText("补扣金额:" + rechargeBean.getDeductionMorny());
        } else {
                binding.redDeductionMorny.setVisibility(View.GONE);
            }
            binding.readBtn.setVisibility(View.VISIBLE);
            binding.readBtn.setOnClickListener(v -> {
                PrintUtils.printerData(rechargeBean);
            });
        } else {
            int balance = userCard.getBalance();
            binding.redName.setText("姓名:" + userCardBean.getUserName());
            binding.tip.setText("开卡成功!");
            binding.redInitCode.setText("卡号:" + userCardBean.getCardNumber());
@@ -75,8 +88,13 @@
            binding.redRechargeBalance.setVisibility(View.GONE);
            binding.redRechargeElectric.setVisibility(View.GONE);
            binding.redSurplusElectric.setVisibility(View.GONE);
            binding.redDeductionMorny.setVisibility(View.GONE);
        }
        if (TextUtils.isEmpty(statu)) {
            binding.redStatu.setVisibility(View.GONE);
        } else {
        binding.redStatu.setText("卡状态:" + statu);
        }
        if (userCard != null) {
            Calendar calendar = userCard.getRechargeDate();
            if (calendar != null) {
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeListActivity.java
@@ -3,6 +3,7 @@
import static com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_TEXT;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -15,6 +16,7 @@
import com.dayu.baselibrary.view.datepicker.CustomDatePicker;
import com.dayu.baselibrary.view.datepicker.DateFormatUtils;
import com.dayu.qiheonlinelibrary.QHOnLineApplication;
import com.dayu.qiheonlinelibrary.adapter.RechargeAdapter;
import com.dayu.qiheonlinelibrary.databinding.ActivityRechargeListQhlBinding;
import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
@@ -74,7 +76,11 @@
                getList();
            }
        });
        adapter = new RechargeAdapter(this, rechargeList);
        adapter = new RechargeAdapter(this, rechargeList, position -> {
            Intent intent = new Intent(RechargeListActivity.this, RechargeDetailActivity.class);
            intent.putExtra("rechargeBean", rechargeList.get(position));
            startActivity(intent);
        });
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        rechargeListBinding.recyclerView.setLayoutManager(layoutManager);
        rechargeListBinding.recyclerView.setAdapter(adapter);
@@ -98,9 +104,9 @@
            // 在这里执行异步操作
            List<RechargeBean> beanList;
            if (beginTime == 0 && endTime == 0) {
                beanList = asynchBaseDao.rechargeDao().findAll(page * limit, limit);
                beanList = asynchBaseDao.rechargeDao().findAll(QHOnLineApplication.qhAloneApplication.adminId, page * limit, limit);
            } else {
                beanList = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime);
                beanList = asynchBaseDao.rechargeDao().ansyFindByTime(QHOnLineApplication.qhAloneApplication.adminId, beginTime, endTime);
            }
            // 将结果发送给观察者
            emitter.onNext(beanList);
@@ -113,12 +119,17 @@
                        result -> {
                            // 在这里处理结果,这里是在主线程中
//                            System.out.println("Result: " + result);
                            if (beginTime == 0 && endTime == 0) {
                            if (result.size() < limit) {
                                myRefreshLayout.finishLoadMoreWithNoMoreData();
                            }
                            if (result != null && result.size() > 0) {
                                rechargeList.addAll(result);
                            }
                            } else {
                                rechargeList.addAll(result);
                                myRefreshLayout.finishLoadMoreWithNoMoreData();
                            }
                            adapter.notifyDataSetChanged();
                            getTotal();
                        },
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java
@@ -12,6 +12,7 @@
import com.dayu.qiheonlinelibrary.adapter.UserSearchAdapter;
import com.dayu.qiheonlinelibrary.bean.UserListResult;
import com.dayu.qiheonlinelibrary.databinding.ActivityUserSearchQhlBinding;
import com.dayu.qiheonlinelibrary.dbBean.UserCardBean;
import com.dayu.qiheonlinelibrary.net.ApiManager;
import com.dayu.qiheonlinelibrary.net.BaseResponse;
import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
@@ -32,6 +33,8 @@
 * 备注:用户搜索
 */
public class UserSearchActivity extends BaseActivity {
    public static UserSearchActivity userSearchActivity;
    ActivityUserSearchQhlBinding binding;
    UserSearchDialog userSearchDialog;
    RefreshLayout myRefreshLayout;
@@ -45,9 +48,12 @@
    int type;//当前操作类型
    UserCardBean userCardBean = new UserCardBean();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        userSearchActivity = this;
        binding = ActivityUserSearchQhlBinding.inflate(LayoutInflater.from(this));
        setContentView(binding.getRoot());
        type = this.getIntent().getIntExtra("type", 0);
@@ -69,11 +75,18 @@
        adapter = new UserSearchAdapter(this, records, new UserSearchAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(int position) {
                UserListResult.Records record = records.get(position);
                userCardBean.setUserName(record.getPeasantName());
                userCardBean.setUserID(record.getPeasantIdNumber());
                userCardBean.setPhone(record.getPeasantPhone());
                userCardBean.setPersonId(record.getPeasantId());
                userCardBean.setAddressCode(record.getAdcd());
                userCardBean.setAddressName(record.getAdcdName());
                Intent intent = new Intent(UserSearchActivity.this, CardSearchActivity.class);
                intent.putExtra("pearsontId", records.get(position).getPeasantId());
                intent.putExtra("pearsontId", record.getPeasantId());
                intent.putExtra("type", type);
                intent.putExtra("dbUserCard", userCardBean);
                UserSearchActivity.this.startActivity(intent);
                UserSearchActivity.this.finish();
            }
        });
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
@@ -113,15 +126,14 @@
        data.put("peasantName", name);
        data.put("current", page);
        data.put("pageSize", size);
        ApiManager.getInstance().requestPostLoading(this, "api/sjgg/base/peasant/pagePeasantVo", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
        ApiManager.getInstance().requestPostLoading(this, "base/peasant/pagePeasantVo", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() {
            @Override
            public void onNext(BaseResponse<UserListResult> t) {
                if (t.isSuccess()) {
                    if (t.getData().getTotal() == records.size()) {
                    if (t.getData().getTotal() == records.size() || size > t.getData().getTotal()) {
                        myRefreshLayout.finishLoadMoreWithNoMoreData();
                    } else {
                        records.addAll(t.getData().getRecords());
                    }
                    records.addAll(t.getData().getRecords());
                    adapter.notifyDataSetChanged();
                    myRefreshLayout.finishLoadMore();
                }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/CardAdapter.java
@@ -64,7 +64,7 @@
                    ((ViewHolder) holder).getBinding().userCode.setText(record.getIccardCode());
                    ((ViewHolder) holder).getBinding().balance.setText(record.getIccardBalanceMoney() + "元");
                    ((ViewHolder) holder).getBinding().totalMorny.setText(record.getTotalRechargeMoney() + "元");
                    ((ViewHolder) holder).getBinding().balanceElectic.setText(record.getIccardBalanceElectric());
                    ((ViewHolder) holder).getBinding().balanceElectic.setText(record.getIccardBalanceElectric()+" 度");
                    ((ViewHolder) holder).getBinding().lastRechargeTime.setText("最后充值时间:" + record.getLastRechargeTime());
                    if (record.getIccardStatus() == 0) {
                        ((ViewHolder) holder).getBinding().state.setText("正常");
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/RechargeAdapter.java
@@ -25,10 +25,17 @@
    List<RechargeBean> rechargeList;
    Context mContext;
    OnItemClickListener onItemClickListener;
    public RechargeAdapter(Context context, List<RechargeBean> rechargeList) {
    public interface OnItemClickListener {
        void onItemClick(int position);
    }
    public RechargeAdapter(Context context, List<RechargeBean> rechargeList, OnItemClickListener onItemClickListener) {
        mContext = context;
        this.rechargeList = rechargeList;
        this.onItemClickListener = onItemClickListener;
    }
@@ -49,12 +56,11 @@
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        if (holder instanceof ViewHolder) {
            if (rechargeList.size() > 0) {
                ((ViewHolder) holder).getBinding().item.setOnClickListener(v -> onItemClickListener.onItemClick(position));
                ((ViewHolder) holder).getBinding().userName.setText("姓名:" + rechargeList.get(position).getUserName());
                ((ViewHolder) holder).getBinding().userNo.setText("卡号:" + rechargeList.get(position).getCardNumber());
                ((ViewHolder) holder).getBinding().morny.setText("充值金额:" + rechargeList.get(position).getMorny() + " 元");
//                ((ViewHolder) holder).getBinding().rachagerWater.setText("充值水量:" + rechargeList.get(position).getRechargeWater() + " 吨");
                ((ViewHolder) holder).getBinding().balance.setText("充值时余额:" + rechargeList.get(position).getBalance() + " 元");
//                ((ViewHolder) holder).getBinding().surplusWater.setText("剩余水量:" + rechargeList.get(position).getSurplusWater()  + " 吨");
                ((ViewHolder) holder).getBinding().date.setText("日期:" + DateUtil.dateToStamp(rechargeList.get(position).getRechargeDate(), DateUtil.type1));
            }
        }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java
@@ -6,7 +6,7 @@
 * Time: 16:13
 * 备注:
 */
public class AddUserResult {
public class AddUserResult extends BaseResult{
// {"state":1,"updatedTime":"2024-08-05 16:12:29","accountType":0,"planId":"","preRechargeMoney":0.00,"adcdName":"焦庙村委会","iccardBalanceMoney":"","updatedBy":"1816297106145103873","peasantType":"","compensateMoney":0.00,"createdTime":"2024-08-05 16:12:29","refunds":0.00,"peasantId":"1820372286394867713","priceType":"","createdBy":"1816297106145103873","adcd":"371425102301","peasantIdNumber":"130107199210160023","peasantCode":"37142510230100013","peasantName":"测试","peasantPhone":"15802220723","contractedLandArea":"","address":"","planName":""}
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/BaseResult.java
New file
@@ -0,0 +1,11 @@
package com.dayu.qiheonlinelibrary.bean;
/**
 * Created by Android Studio.
 * author: zuo
 * Date: 2024-08-14
 * Time: 15:29
 * 备注:
 */
public class BaseResult {
}
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoListResult.java
@@ -8,7 +8,7 @@
 * Time: 14:43
 * 备注:
 */
public class CardInfoListResult {
public class CardInfoListResult extends BaseResult{
    int total;//总数
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoResult.java
@@ -6,7 +6,7 @@
 * Time: 16:51
 * 备注:通过实体卡号查询到的信息
 */
public class CardInfoResult {
public class CardInfoResult extends BaseResult {
//{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-06 15:21:59","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820721965431267330","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":"2024-08-06 15:21:59","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"4440DABA"}
    int iccardStatus;//ic卡状态 0 正常 1 已注销 2 已挂失
@@ -31,6 +31,26 @@
    String iccardBalanceElectric;// 卡内剩余电量
    String adcd;
    String adcdName;
    public String getAdcd() {
        return adcd;
    }
    public void setAdcd(String adcd) {
        this.adcd = adcd;
    }
    public String getAdcdName() {
        return adcdName;
    }
    public void setAdcdName(String adcdName) {
        this.adcdName = adcdName;
    }
    public String getIccardBalanceElectric() {
        return iccardBalanceElectric;
    }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/LoginResult.java
@@ -8,9 +8,9 @@
 * Time: 16:06
 * 备注:
 */
public class LoginResult {
public class LoginResult extends BaseResult{
    //{"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"}}
   public String userId;//用户id
    OtherData otherData;
@@ -52,5 +52,11 @@
        }
    }
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
}
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/OpenCardResult.java
@@ -6,7 +6,7 @@
 * Time: 16:23
 * 备注:
 */
public class OpenCardResult {
public class OpenCardResult extends BaseResult{
// {"code":"0","msg":"操作成功","data":{"iccardBalanceMoney":0,"lastSwipeTime":"","rechargeOperatorUsername":"","rechargeType":0,"iccardCode":"3714251023010002","rechargeCallbackType":"","iccardNum":"","lastRechargeTime":"","iccardBalanceAmonunt":0,"thisSaleAmount":"","remark":"待写卡,开卡交易中","username":"","rechargeRecordNum":"1821459146525384704","totalRechargeMoney":"","iccardType":"","reissueTimes":"","yearRechargeElectricAmount":"","rechargeWaterAmount":"","iccardRechargeRecordId":"1821459146567327745","rechargeOperatorUserId":"1816297106145103873","chargeMethod":"","yearRechargeMoney":"","rechargeElectricAmount":"","iccardProtocolName":"","equipCode":"","thisSaleMoney":"","iccardBalanceElectric":"","rechargeCardMoney":5,"peasantId":"1821458177314004994","totalRechargeElectricAmount":"","rechargeStatus":1,"writeCardStatus":1,"lastRechargeMoney":"","totalRechargeWaterAmount":"","executeWaterPrice":"","adName":"","yearCompensateMoney":"","iccardBrand":"","rechargeWaterMoney":"","yearRechargeWaterAmount":"","rechargeMoney":5,"iccardInfoId":"1821459146349223937","rechargeTime":"","iccardPrice":1.50016}}
    String iccardRechargeRecordId;//ic卡交易记录id
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/PricePlanResult.java
@@ -10,7 +10,7 @@
 * Time: 16:00
 * 备注:水价管理列表
 */
public class PricePlanResult {
public class PricePlanResult extends BaseResult{
//    {
//        "code": "0",
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/RechargeResult.java
@@ -6,7 +6,7 @@
 * Time: 11:08
 * 备注:
 */
public class RechargeResult {
public class RechargeResult extends BaseResult{
    //{"iccardBalanceMoney":2,"lastSwipeTime":"","rechargeOperatorUsername":"","rechargeType":1,"iccardCode":"4440DABA","rechargeCallbackType":"","iccardNum":"","lastRechargeTime":"","iccardBalanceAmonunt":6.25,"thisSaleAmount":"","remark":"待写卡,充值交易中","username":"","rechargeRecordNum":"1821020394581663744","totalRechargeMoney":0.00,"iccardType":"","reissueTimes":"","yearRechargeElectricAmount":0.00,"rechargeWaterAmount":6.25,"iccardRechargeRecordId":"1821020394594246658","rechargeOperatorUserId":"1816297106145103873","chargeMethod":"","yearRechargeMoney":0.00,"rechargeElectricAmount":1.33,"iccardProtocolName":"","equipCode":"","thisSaleMoney":"","iccardBalanceElectric":1.33,"rechargeCardMoney":"","peasantId":"1820374742679953410","totalRechargeElectricAmount":0.00,"rechargeStatus":1,"writeCardStatus":1,"lastRechargeMoney":"","totalRechargeWaterAmount":0.00,"executeWaterPrice":"","adName":"","yearCompensateMoney":"","iccardBrand":"","rechargeWaterMoney":2,"yearRechargeWaterAmount":0.00,"rechargeMoney":2,"iccardInfoId":"","rechargeTime":"","iccardPrice":1.50}
    String iccardBalanceMoney;//卡内剩余金额(元)
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/ReplaceCardResult.java
@@ -6,7 +6,7 @@
 * Time: 16:29
 * 备注:补卡返回参数
 */
public class ReplaceCardResult {
public class ReplaceCardResult extends BaseResult{
    //{"code":"0","msg":"操作成功","data":{"iccardBalanceMoney":5.00,"lastSwipeTime":"","rechargeOperatorUsername":"","rechargeType":0,"iccardCode":"3714251023010005","rechargeCallbackType":"","iccardNum":"","lastRechargeTime":"","iccardBalanceAmonunt":15.63,"thisSaleAmount":"","remark":"待写卡,补卡开卡交易中","username":"","rechargeRecordNum":"1821825921016406016","totalRechargeMoney":"","iccardType":"","reissueTimes":"","yearRechargeElectricAmount":"","rechargeWaterAmount":"","iccardRechargeRecordId":"1821825921020600321","rechargeOperatorUserId":"1816297106145103873","chargeMethod":"","yearRechargeMoney":"","rechargeElectricAmount":"","iccardProtocolName":"","equipCode":"","thisSaleMoney":"","iccardBalanceElectric":3.33,"rechargeCardMoney":4,"peasantId":"1821458177314004994","totalRechargeElectricAmount":"","rechargeStatus":1,"writeCardStatus":1,"lastRechargeMoney":"","totalRechargeWaterAmount":"","executeWaterPrice":"","adName":"","yearCompensateMoney":"","iccardBrand":"","rechargeWaterMoney":"","yearRechargeWaterAmount":"","rechargeMoney":4,"iccardInfoId":"1821825920739581954","rechargeTime":"","iccardPrice":1.50}}
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/UserListResult.java
@@ -8,7 +8,7 @@
 * Time: 15:28
 * 备注:
 */
public class UserListResult {
public class UserListResult extends BaseResult{
    int total;//总数
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java
@@ -55,6 +55,7 @@
    public static ManageCard getBean(List<byte[]> data) {
        if (data != null) {
            try {
            ManageCard manageCard = new ManageCard();
            byte[] zero = data.get(0);
            byte[] arerNumberByte = new byte[4];
@@ -65,6 +66,9 @@
            manageCard.setUserCard(HexUtil.bytesToHex(passWordByte));
            manageCard.setCardWriteState(zero[13]);
            return manageCard;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/RechargeDao.java
@@ -37,9 +37,9 @@
    @Query("select  * from RechargeBean where rechargeDate>=:beginTime and rechargeDate<=:endTime")
    LiveData<List<RechargeBean>> findByTime(long beginTime, long endTime);
    @Query("select  * from RechargeBean where rechargeDate>=:beginTime and rechargeDate<=:endTime")
    List<RechargeBean> ansyFindByTime(long beginTime, long endTime);
    @Query("select  * from RechargeBean where rechargeDate>=:beginTime and rechargeDate<=:endTime and adminId =:adminId")
    List<RechargeBean> ansyFindByTime(String adminId,long beginTime, long endTime);
    @Query("select  * from RechargeBean order by rechargeDate desc LIMIT :limit OFFSET :offset")
    List<RechargeBean> findAll(int offset,int limit);
    @Query("select  * from RechargeBean where adminId =:adminId   order by rechargeDate desc LIMIT :limit OFFSET :offset")
    List<RechargeBean> findAll(String adminId,int offset,int limit);
}
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/RechargeBean.java
@@ -46,6 +46,15 @@
    private String deductionMorny;//补扣钱款 充值补扣金额=充值金额+充值前读取的卡内余额-充值回调返回卡内余额
    private String adminId;//当前登录的用户id
    public String getAdminId() {
        return adminId;
    }
    public void setAdminId(String adminId) {
        this.adminId = adminId;
    }
    public String getDeductionMorny() {
        return deductionMorny;
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiManager.java
@@ -2,9 +2,11 @@
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import com.dayu.baselibrary.business.BusinessProvider;
import com.dayu.qiheonlinelibrary.bean.BaseResult;
import com.dayu.qiheonlinelibrary.net.subscribers.BaseProgressSubscriber;
import com.dayu.qiheonlinelibrary.net.subscribers.ProgressSubscriber;
import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
@@ -127,6 +129,10 @@
                            response.setCode(tem.getCode());
                            response.setMsg(tem.getMsg());
                            if (tClass!= null) {
                                if (TextUtils.isEmpty(tem.getData().toString()) && BaseResult.class.isAssignableFrom(tClass)) {
                                    response.setData(null);
                                    return response;
                                }
                            if ( tem.getData() instanceof Map) {
                                try {
//                                    response.setData(MyJsonParser.getBeanFromMap((Map<String, Object>) tem.getData(), tClass));
@@ -154,7 +160,8 @@
                                }
                            }
                            return response;
                        }}
                            }
                        }
                        return null;
                    }
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java
@@ -7,7 +7,7 @@
 * Description:
 */
public class Constants {
    public static final String BASE_URL = "http://120.46.45.35:20081/";
    public static final String BASE_URL = "http://120.46.45.35:20081/api/sjggqhtest/";
    /**
     * 代表请求成功
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/NfcReadHelper.java
@@ -136,8 +136,8 @@
                    byte[] data = mfc.readBlock(bIndex + 0);
                    if (data != null && data.length > 0) {
                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
//                        hex = HexUtil.spaceHex(hex);
//                        hex = HexUtil.HighLowHex(hex);
                        hex = HexUtil.spaceHex(hex);
                        hex = HexUtil.HighLowHex(hex);
                        Log.i("NFCWreatActivity", "hex===" + hex);
                        return hex.toUpperCase();
                    }
@@ -179,6 +179,8 @@
                    byte[] data = mfc.readBlock(bIndex + 0);
                    if (data != null && data.length > 0) {
                        String hex = HexUtil.bytesToHex(Arrays.copyOfRange(data, 0, 4));
                        hex = HexUtil.spaceHex(hex);
                        hex = HexUtil.HighLowHex(hex);
                        strData.append(hex);
                        strData.append(",");
                        Log.i("NFCWreatActivity", "hex===" + hex);
qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/PrintUtils.java
New file
@@ -0,0 +1,57 @@
package com.dayu.qiheonlinelibrary.utils;
import android.text.TextUtils;
import com.dayu.baselibrary.utils.AidlUtil;
import com.dayu.baselibrary.utils.DateUtil;
import com.dayu.baselibrary.utils.MornyUtil;
import com.dayu.qiheonlinelibrary.dbBean.RechargeBean;
import com.tencent.bugly.crashreport.CrashReport;
/**
 * Created by Android Studio.
 * author: zuo
 * Date: 2024-08-14
 * Time: 10:57
 * 备注:
 */
public class PrintUtils {
    /**
     * 打印机相关信息
     *
     * @param rechargeBean
     */
    public static void printerData(RechargeBean rechargeBean) {
        try {
            StringBuffer data = new StringBuffer();
            if (rechargeBean != null) {
                data.append("*****************************" + "\n");
                data.append("设备序列号:" + rechargeBean.getSerial() + "\n");
                data.append("姓   名:" + rechargeBean.getUserName() + "\n");
                data.append("卡   号:" + rechargeBean.getCardNumber() + "\n");
                data.append("用户编号:" + rechargeBean.getUserCode() + "\n");
                data.append("充值金额:" + rechargeBean.getMorny() + " 元" + "\n");
                if (MornyUtil.changeY2F(rechargeBean.getDeductionMorny()) > 0) {
                    data.append("补扣金额:" + rechargeBean.getDeductionMorny() + " 元" + "\n");
                }
                data.append("充值后卡内余额:" + rechargeBean.getBalance() + " 元" + "\n");
                data.append("充值电量:" + rechargeBean.getRechargeElectric() + " 度" + "\n");
                data.append("充值后卡内电量:" + rechargeBean.getSurplusElectic() + " 度" + "\n");
                data.append("日   期:" + DateUtil.dateToStamp(rechargeBean.getRechargeDate(), DateUtil.type2) + "\n\n");
                data.append("*****************************");
            }
            float size = 26;
            try {
                AidlUtil.getInstance().printText(data.toString(), size, true, false);
//                AidlUtil.getInstance().print3Line();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
            CrashReport.postCatchedException(e);
        }
    }
}
qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml
@@ -92,7 +92,7 @@
                android:layout_marginTop="20dp"
                android:padding="5dp"
                android:text="制作用户电量单价卡"
                android:visibility="gone"
                    android:visibility="visible"
                android:textColor="@color/text_selecter_color"
                android:textSize="@dimen/text_size" />
        </LinearLayout>
qiheonlinelibrary/src/main/res/layout/activity_my_qhl.xml
@@ -124,7 +124,7 @@
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_toStartOf="@+id/my_newCardOut"
                    android:text="开户记录"
                    android:text="开卡记录"
                    android:textColor="@color/text_selecter_color"
                    android:textSize="@dimen/text_size" />
qiheonlinelibrary/src/main/res/layout/activity_newcard_list_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"
        app:rightText="筛选" />
qiheonlinelibrary/src/main/res/layout/activity_recharge_detail_qhl.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<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"
@@ -16,7 +16,9 @@
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/read_btn"
        android:orientation="vertical"
        android:layout_below="@id/titleBar"
        android:padding="30dp">
        <TextView
@@ -34,6 +36,7 @@
            android:layout_marginTop="15dp"
            android:text="当前卡号:"
            android:textSize="@dimen/text_size" />
        <TextView
            android:id="@+id/red_userCode"
            android:layout_width="match_parent"
@@ -49,6 +52,15 @@
            android:layout_marginTop="15dp"
            android:text="充值金额:"
            android:textSize="@dimen/text_size" />
        <TextView
            android:id="@+id/red_deductionMorny"
            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_recharge_balance"
            android:layout_width="match_parent"
@@ -56,14 +68,15 @@
            android:layout_marginTop="15dp"
            android:text="剩余金额:"
            android:textSize="@dimen/text_size" />
        <TextView
            android:id="@+id/red_remainder_blance"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:text="剩余金额:"
            android:visibility="gone"
            android:textSize="@dimen/text_size" />
            android:textSize="@dimen/text_size"
            android:visibility="gone" />
        <TextView
            android:id="@+id/red_rechargeElectric"
@@ -71,16 +84,18 @@
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:text="充值电量:"
            android:visibility="visible"
            android:textSize="@dimen/text_size" />
            android:textSize="@dimen/text_size"
            android:visibility="visible" />
        <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" />
            android:textSize="@dimen/text_size"
            android:visibility="visible" />
        <TextView
            android:id="@+id/red_rechargeDate"
            android:layout_width="match_parent"
@@ -118,4 +133,15 @@
            android:textSize="@dimen/text_size" />
    </LinearLayout>
</LinearLayout>
    <TextView
        android:id="@+id/read_btn"
        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"
        android:visibility="invisible" />
</RelativeLayout>
qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml
@@ -151,7 +151,7 @@
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="剩余金额:"
                        android:text="充值后剩余金额:"
                        android:textSize="@dimen/text_size" />
                    <TextView
@@ -163,13 +163,13 @@
                </LinearLayout>
                <TextView
                    android:id="@+id/red_remainder_water"
                    android:id="@+id/red_balance_electric"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:text="剩余水量:"
                    android:text="剩余电量:"
                    android:textSize="@dimen/text_size"
                    android:visibility="gone" />
                    android:visibility="visible" />
                <TextView
                    android:id="@+id/red_rechargeDate"
qiheonlinelibrary/src/main/res/layout/dialog_replace_price.xml
@@ -38,6 +38,7 @@
            android:layout_marginRight="20dp"
            android:background="@drawable/editbg"
            android:hint="请输入补卡工本费(元)"
            android:inputType="numberDecimal"
            android:paddingLeft="10dp"
            android:textColor="#000000" />
@@ -53,8 +54,6 @@
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:padding="5dp">
            <TextView
qiheonlinelibrary/src/main/res/layout/qihe_line_item_recharge.xml
@@ -8,6 +8,7 @@
        android:orientation="vertical">
        <LinearLayout
            android:id="@+id/item"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"