左晓为主开发手持机充值管理机
zuoxiao
2024-07-13 d08a5a6d062f1568aaeb14d2d72357826291ef97
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
@@ -10,14 +10,19 @@
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.MornyUtil;
import com.dayu.baselibrary.utils.TipUtil;
import com.dayu.baselibrary.view.ConfirmDialog;
import com.dayu.qihealonelibrary.card.BlackCard;
import com.dayu.qihealonelibrary.card.ConfigurationPowerCard;
import com.dayu.qihealonelibrary.card.DomainCard;
import com.dayu.qihealonelibrary.card.ElectricPriceCard;
import com.dayu.qihealonelibrary.card.ManageCard;
import com.dayu.qihealonelibrary.card.ManagerToUserCard;
import com.dayu.qihealonelibrary.card.RegionCard;
import com.dayu.qihealonelibrary.card.UserCard;
import com.dayu.qihealonelibrary.databinding.ActivityRedCardQhaBinding;
import com.dayu.qihealonelibrary.dbBean.AdminDataBean;
import com.dayu.qihealonelibrary.dbBean.UserCardBean;
import com.dayu.qihealonelibrary.tools.NFCWriteHelper;
import com.dayu.qihealonelibrary.tools.NfcReadHelper;
import com.dayu.qihealonelibrary.utils.CardCommon;
import com.dayu.qihealonelibrary.view.ProgressDialog;
@@ -38,7 +43,10 @@
    Intent intent;
    ConfirmDialog confirmDialog;
    AdminDataBean adminData;
    String cardNumber;
    String userCardStr;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -63,10 +71,10 @@
            }
            redCardBinding.redInitCode.setText(cardNumber);
            redCardBinding.redRechargeNumber.setText("本卡充值次数:" + userCard.getRechargeTimes() + " 次");
            redCardBinding.redTotalWater.setText("总用水量:" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 吨");
            redCardBinding.redTotalPower.setText("总用电量:" +  MornyUtil.changeF2Y(userCard.getTotalElectric())+" 度");
//            redCardBinding.redTotalWater.setText("总用水量:" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 吨");
//            redCardBinding.redTotalPower.setText("总用电量:" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 度");
            redCardBinding.redRemainderBlance.setText("剩余金额:" + MornyUtil.changeF2Y(userCard.getBalance()) + " 元");
            redCardBinding.redRemainderWater.setText("剩余水量:" + MornyUtil.changeF2Y(userCard.getSurplusWater())+" 吨");
//            redCardBinding.redRemainderWater.setText("剩余水量:" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 吨");
        }
    }
@@ -89,10 +97,12 @@
        String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
        String cardNumber = null;
        String[] cardTypes = cardType.split(",");
        if (cardTypes != null && cardTypes.length == 2) {
            cardNumber = cardType.split(",")[0];
            cardNumber = HexUtil.spaceHex(cardNumber);
            cardNumber = HexUtil.HighLowHex(cardNumber);
            cardType = cardType.split(",")[1];
        }
        List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData();
@@ -127,9 +137,46 @@
                }
                break;
            case CardCommon.MANAGE_CRAD:
            case CardCommon.MANAGE_CRAD://管理卡
                ManageCard manageCard = ManageCard.getBean(data);
                viweGone(false);
                redCardBinding.readCardTypeTV.setText("当前为管理卡");
                 userCardStr = manageCard.getUserCard().toUpperCase();
                userCardStr = HexUtil.spaceHex(userCardStr);
                userCardStr = HexUtil.HighLowHex(userCardStr);
                redCardBinding.readCardTypeTV.setText("当前为管理卡" + "\n\n"
                        + "原始卡号:" + userCard);
                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());
                                nfcWriteHelper.writeData(managerToUserCard.getZeroBytes(),1,0);
                                TipUtil.show(ReadCardAcitivy.this, "补卡成功", () -> ReadCardAcitivy.this.finish());
                            } catch (Exception e) {
                               e.printStackTrace();
                            }
                            stopAnim();
                        }
                    });
                    confirmDialog.show();
                }
                break;
            case CardCommon.CLEAN_CARD_TYPE:
                viweGone(false);