| New file | 
|  |  |  | 
|---|
|  |  |  | package com.dayu.qihealonelibrary.activity; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import android.content.Intent; | 
|---|
|  |  |  | import android.os.Bundle; | 
|---|
|  |  |  | import android.text.TextUtils; | 
|---|
|  |  |  | import android.util.Log; | 
|---|
|  |  |  | import android.view.KeyEvent; | 
|---|
|  |  |  | import android.view.LayoutInflater; | 
|---|
|  |  |  | import android.view.View; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.dayu.baselibrary.tools.HexUtil; | 
|---|
|  |  |  | import com.dayu.baselibrary.tools.print.PrintAdater; | 
|---|
|  |  |  | import com.dayu.baselibrary.utils.BaseCommon; | 
|---|
|  |  |  | import com.dayu.baselibrary.utils.DateUtil; | 
|---|
|  |  |  | import com.dayu.baselibrary.utils.MornyUtil; | 
|---|
|  |  |  | import com.dayu.baselibrary.utils.TipUtil; | 
|---|
|  |  |  | import com.dayu.baselibrary.view.ConfirmDialog; | 
|---|
|  |  |  | import com.dayu.baselibrary.view.TitleBar; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.QHAloneApplication; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.CleanCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.CleanUserCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.ConfigurationPowerCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.ConfigureDeviceRegistrationCrad; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.DomainCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.ElectricPriceCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.ManageCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.PassWordCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.RegionCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.RegisteredCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.TestCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.card.UserCard; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.databinding.ActivityWriteTextQhaBinding; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.dbBean.AdminDataBean; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.dbBean.RechargeBean; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.dbBean.UserCardBean; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.tools.NFCWriteHelper; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.tools.NfcReadHelper; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.tools.WriteCardUtils; | 
|---|
|  |  |  | import com.dayu.qihealonelibrary.utils.CardCommon; | 
|---|
|  |  |  | import com.tencent.bugly.crashreport.CrashReport; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.Calendar; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * Copyright (C), 2023, | 
|---|
|  |  |  | * Author: zuo | 
|---|
|  |  |  | * Date: 2023-11-08 21:19 | 
|---|
|  |  |  | * Description: nfc写卡界面 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public class NFCWreatActivityQHAlone extends QHAloneBaseNfcActivity { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | RegisteredCard registeredCard; | 
|---|
|  |  |  | CleanUserCard cleanUserCard; | 
|---|
|  |  |  | ManageCard manageCard; | 
|---|
|  |  |  | DomainCard domainCard; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | CleanCard cleanCard; | 
|---|
|  |  |  | ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; | 
|---|
|  |  |  | TestCard testCard; | 
|---|
|  |  |  | //区域表号卡 | 
|---|
|  |  |  | RegionCard regionCard; | 
|---|
|  |  |  | ConfigurationPowerCard configurationPowerCard; | 
|---|
|  |  |  | //密码卡 | 
|---|
|  |  |  | PassWordCard passWordCard; | 
|---|
|  |  |  | //用户电量单价卡 | 
|---|
|  |  |  | ElectricPriceCard electricPriceCard; | 
|---|
|  |  |  | UserCardBean userCardBeanByManager; | 
|---|
|  |  |  | boolean electricPriceFlag = false; | 
|---|
|  |  |  | boolean passwordFlag = false; | 
|---|
|  |  |  | boolean cleanFlag = false; | 
|---|
|  |  |  | boolean regionFlag = false; | 
|---|
|  |  |  | boolean userFlag = false; | 
|---|
|  |  |  | boolean manageCardFlag = false; | 
|---|
|  |  |  | boolean registeredFlag = false; | 
|---|
|  |  |  | boolean administrativeCardFlag = false; | 
|---|
|  |  |  | boolean cleanUserCardFlag = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean domainCrdFlag = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean testCardFlag = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean configDeviceRegiestFlag = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean configPowerFlag = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | UserCardBean userCardBean; | 
|---|
|  |  |  | UserCard olduserCard; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String morny; | 
|---|
|  |  |  | String rechageWater;//充值的水量 | 
|---|
|  |  |  | String userName; | 
|---|
|  |  |  | AdminDataBean adminData; | 
|---|
|  |  |  | RechargeBean rechargeBean; | 
|---|
|  |  |  | Intent intent; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //打印 | 
|---|
|  |  |  | QHAloneApplication baseApp; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static NFCWreatActivityQHAlone nfcWreatActivity; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 是否是用户卡,假如是用户卡的话需要检测卡片是否已经开过户,假如已开户则报错不能再写卡 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | boolean isUser = false;// | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //是否是充值过程 | 
|---|
|  |  |  | boolean isRecharge = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ActivityWriteTextQhaBinding binding; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //当前卡的物理卡号 | 
|---|
|  |  |  | String cardNumber; | 
|---|
|  |  |  | ConfirmDialog confirmDialog; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | protected void onCreate(Bundle savedInstanceState) { | 
|---|
|  |  |  | super.onCreate(savedInstanceState); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | binding = ActivityWriteTextQhaBinding.inflate(LayoutInflater.from(this)); | 
|---|
|  |  |  | setContentView(binding.getRoot()); | 
|---|
|  |  |  | nfcWreatActivity = this; | 
|---|
|  |  |  | getData(); | 
|---|
|  |  |  | titleBack(); | 
|---|
|  |  |  | baseApp = QHAloneApplication.getInstance(); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | CrashReport.postCatchedException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void getData() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (this.getIntent().hasExtra("userCard")) { | 
|---|
|  |  |  | userCard = (UserCard) this.getIntent().getSerializableExtra("userCard"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("electricPriceCard")) { | 
|---|
|  |  |  | electricPriceCard = (ElectricPriceCard) this.getIntent().getSerializableExtra("electricPriceCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作用户电量单价卡\n当前单价:" + electricPriceCard.getElectricPrice().toString() + " 元"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("passWordCard")) { | 
|---|
|  |  |  | passWordCard = (PassWordCard) this.getIntent().getSerializableExtra("passWordCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作密码卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("cleanCard")) { | 
|---|
|  |  |  | cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作清零卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("manageCard")) { | 
|---|
|  |  |  | cardNumber = this.getIntent().getStringExtra("cardNumber"); | 
|---|
|  |  |  | manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard"); | 
|---|
|  |  |  | if (this.getIntent().hasExtra("userCardBean_manager")) { | 
|---|
|  |  |  | userCardBeanByManager = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean_manager"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //显示的时候要反过来 | 
|---|
|  |  |  | String hex = HexUtil.spaceHex(manageCard.getUserCard()); | 
|---|
|  |  |  | hex = HexUtil.HighLowHex(hex); | 
|---|
|  |  |  | binding.cardData.setText("制作管理卡(请将管理卡贴在设备上)\n用户卡号:" + hex); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("registeredCard")) { | 
|---|
|  |  |  | registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作重新注册设备卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("dbUserCard")) { | 
|---|
|  |  |  | userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard"); | 
|---|
|  |  |  | isUser = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("cleanUserCard")) { | 
|---|
|  |  |  | cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作删除全部用户卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("domainCard")) { | 
|---|
|  |  |  | domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作设置域名卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("testCard")) { | 
|---|
|  |  |  | testCard = (TestCard) this.getIntent().getSerializableExtra("testCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作测试卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) { | 
|---|
|  |  |  | configureDeviceRegistrationCrad = (ConfigureDeviceRegistrationCrad) this.getIntent().getSerializableExtra("configureDeviceRegistrationCrad"); | 
|---|
|  |  |  | binding.cardData.setText("制作配置设备注册信息卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("configurationPowerCard")) { | 
|---|
|  |  |  | configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作配置水泵功率卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("regionCard")) { | 
|---|
|  |  |  | regionCard = (RegionCard) this.getIntent().getSerializableExtra("regionCard"); | 
|---|
|  |  |  | binding.cardData.setText("制作区域表号卡"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.getIntent().hasExtra("morny")) { | 
|---|
|  |  |  | // 充值逻辑 | 
|---|
|  |  |  | isRecharge = true; | 
|---|
|  |  |  | morny = this.getIntent().getStringExtra("morny"); | 
|---|
|  |  |  | userName = this.getIntent().getStringExtra("userName"); | 
|---|
|  |  |  | cardNumber = this.getIntent().getStringExtra("cardNumber"); | 
|---|
|  |  |  | userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean"); | 
|---|
|  |  |  | //                rechageWater = this.getIntent().getStringExtra("rechageWater"); | 
|---|
|  |  |  | binding.cardData.setText("充值金额:" + morny + " 元"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | adminData = baseDao.adminDao().findFirst(); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | CrashReport.postCatchedException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | CrashReport.postCatchedException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 检测是否是用户卡,假如是用户卡的话需要检测卡片是否已经开过户,假如已开户则报错不能再写卡假如是用户卡需要 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void checkHasUser() { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Log.i("NFCWreatActivity", "cardType=" + cardType); | 
|---|
|  |  |  | if (cardType.equals(CardCommon.USER_CARD_TYPE_1) || | 
|---|
|  |  |  | cardType.equals(CardCommon.USER_CARD_TYPE_2) || | 
|---|
|  |  |  | cardType.equals(CardCommon.USER_CARD_TYPE_3) | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | binding.textView.setText("该卡已经写入用户信息,请更换卡片"); | 
|---|
|  |  |  | binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red)); | 
|---|
|  |  |  | } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "请勿移动卡片,读卡失败请重试!!"); | 
|---|
|  |  |  | } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "卡片未能识别,请检查卡片是否是本公司卡片"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | Log.i("NFCWreatActivity", "olduserCard!=null  saveData"); | 
|---|
|  |  |  | userCardBean.setCardNumber(cardNumber); | 
|---|
|  |  |  | baseDao.userCardDao().insert(userCardBean); | 
|---|
|  |  |  | saveData(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | stopAnim(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void saveData() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | startAnim(); | 
|---|
|  |  |  | if (userCard != null || cleanCard != null || manageCard != null | 
|---|
|  |  |  | || registeredCard != null || cleanUserCard != null | 
|---|
|  |  |  | || domainCard != null || testCard != null | 
|---|
|  |  |  | || configureDeviceRegistrationCrad != null | 
|---|
|  |  |  | || configurationPowerCard != null || regionCard != null || passWordCard != null || electricPriceCard != null) { | 
|---|
|  |  |  | if (userCard != null && TextUtils.isEmpty(morny)) { | 
|---|
|  |  |  | userFlag = WriteCardUtils.setUser(intent, userCard, this); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (electricPriceCard != null) { | 
|---|
|  |  |  | setElectricPriceCard(intent, electricPriceCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (passWordCard != null) { | 
|---|
|  |  |  | setPassWordCard(intent, passWordCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (regionCard != null) { | 
|---|
|  |  |  | setRegionCard(intent, regionCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (cleanCard != null) { | 
|---|
|  |  |  | setClean(intent, cleanCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (manageCard != null) { | 
|---|
|  |  |  | setmanageCard(intent, manageCard); | 
|---|
|  |  |  | //                    if (manageCardFlag && userCardBeanByManager != null) { | 
|---|
|  |  |  | //                        //修改用户表信息修改成新卡卡号 | 
|---|
|  |  |  | //                        userCardBeanByManager.setCardNumber(cardNumber); | 
|---|
|  |  |  | //                        baseDao.userCardDao().update(userCardBeanByManager); | 
|---|
|  |  |  | //                    } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (registeredCard != null) { | 
|---|
|  |  |  | setRegisteredCard(intent, registeredCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (cleanUserCard != null) { | 
|---|
|  |  |  | setCleanUserCard(intent, cleanUserCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (domainCard != null) { | 
|---|
|  |  |  | setDomainCard(intent, domainCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (testCard != null) { | 
|---|
|  |  |  | setTestCard(intent, testCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (configureDeviceRegistrationCrad != null) { | 
|---|
|  |  |  | setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (configurationPowerCard != null) { | 
|---|
|  |  |  | setConfigurationPower(intent, configurationPowerCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (userFlag && userCardBean != null) { | 
|---|
|  |  |  | //用户卡 | 
|---|
|  |  |  | startDetailActivity(userCardBean.getUserName(), "终端写卡"); | 
|---|
|  |  |  | } else if (!TextUtils.isEmpty(morny)) { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "充值成功", () -> NFCWreatActivityQHAlone.this.finish()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "写卡成功", () -> NFCWreatActivityQHAlone.this.finish()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | CrashReport.postCatchedException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "写卡失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | stopAnim(); | 
|---|
|  |  |  | } else if (userCard == null && userCardBean != null) { | 
|---|
|  |  |  | //补卡逻辑 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | stopAnim(); | 
|---|
|  |  |  | TipUtil.show(this, "参数错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | CrashReport.postCatchedException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void onNfcBack(Intent intent) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | this.intent = intent; | 
|---|
|  |  |  | //            startAnim(); | 
|---|
|  |  |  | Log.i("NFCWreatActivity", "isUser:" + isUser); | 
|---|
|  |  |  | if (isUser) { | 
|---|
|  |  |  | //新卡注册逻辑 | 
|---|
|  |  |  | checkHasUser(); | 
|---|
|  |  |  | } else if (isRecharge) { | 
|---|
|  |  |  | //充值逻辑 | 
|---|
|  |  |  | rechargeWreatCard(); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //其他管理卡逻辑 | 
|---|
|  |  |  | saveData(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | CrashReport.postCatchedException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 打印机相关信息 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param rechargeBean | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setPrinterData(RechargeBean rechargeBean) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | List<String> data = new ArrayList<>(); | 
|---|
|  |  |  | if (rechargeBean != null) { | 
|---|
|  |  |  | data.add("*****************************"); | 
|---|
|  |  |  | data.add("设备序列号:" + rechargeBean.getSerial()); | 
|---|
|  |  |  | data.add("用户名:" + rechargeBean.getUserName()); | 
|---|
|  |  |  | data.add("卡  号:" + rechargeBean.getCardNumber()); | 
|---|
|  |  |  | data.add("充值金额:" + rechargeBean.getMorny() + " 元"); | 
|---|
|  |  |  | data.add("卡内余额:" + rechargeBean.getBalance() + " 元"); | 
|---|
|  |  |  | data.add("日  期:" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2)); | 
|---|
|  |  |  | data.add("*****************************"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | float size = 26; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | PrintAdater.getInstance().printText(data, size, true, false); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | CrashReport.postCatchedException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | void startAnim() { | 
|---|
|  |  |  | binding.avi.show(); | 
|---|
|  |  |  | // or avi.smoothToShow(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | void stopAnim() { | 
|---|
|  |  |  | binding.avi.hide(); | 
|---|
|  |  |  | // or avi.smoothToHide(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //往卡内写充值后的数据 | 
|---|
|  |  |  | private void rechargeWreatCard() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber(); | 
|---|
|  |  |  | cardNumberThis = HexUtil.spaceHex(cardNumberThis); | 
|---|
|  |  |  | cardNumberThis = HexUtil.HighLowHex(cardNumberThis); | 
|---|
|  |  |  | //判断是否充值的是一个卡 | 
|---|
|  |  |  | if (cardNumberThis.equalsIgnoreCase(cardNumber)) { | 
|---|
|  |  |  | //余额 | 
|---|
|  |  |  | int balance = userCard.getBalance() + MornyUtil.changeY2F(morny); | 
|---|
|  |  |  | userCard.setBalance(balance); | 
|---|
|  |  |  | //剩余水量 | 
|---|
|  |  |  | //                int surplusWater = userCard.getSurplusWater() + MornyUtil.changeY2F(rechageWater); | 
|---|
|  |  |  | //                userCard.setSurplusWater(surplusWater); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int rechageTims = userCard.getRechargeTimes() + 1; | 
|---|
|  |  |  | if (rechageTims == 256) { | 
|---|
|  |  |  | rechageTims = 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | userCard.setRechargeTimes((short) rechageTims); | 
|---|
|  |  |  | userCard.setRechargeDate(Calendar.getInstance()); | 
|---|
|  |  |  | userFlag = WriteCardUtils.setUser(intent, userCard, this); | 
|---|
|  |  |  | if (userFlag) { | 
|---|
|  |  |  | rechargeBean = new RechargeBean(); | 
|---|
|  |  |  | rechargeBean.setUserName(userName); | 
|---|
|  |  |  | rechargeBean.setSerial(userCardBean.getSerial()); | 
|---|
|  |  |  | rechargeBean.setUserId(userCardBean.getUserID()); | 
|---|
|  |  |  | rechargeBean.setDate(System.currentTimeMillis()); | 
|---|
|  |  |  | rechargeBean.setMorny(morny); | 
|---|
|  |  |  | rechargeBean.setBalance(MornyUtil.changeF2Y(balance)); | 
|---|
|  |  |  | rechargeBean.setCardNumber(cardNumber); | 
|---|
|  |  |  | rechargeBean.setSurplusWater(MornyUtil.changeF2Y(0)); | 
|---|
|  |  |  | rechargeBean.setRechargeWater(rechageWater); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | baseDao.rechargeDao().insert(rechargeBean); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //   打印相关 | 
|---|
|  |  |  | setPrinterData(rechargeBean); | 
|---|
|  |  |  | startDetailActivity(userName, "终端写卡"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "写卡失败,请重新再试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "读取的卡和充值的卡不一致"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | TipUtil.show(NFCWreatActivityQHAlone.this, "读取错误,请重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void setmanageCard(Intent intent, final ManageCard manageCard) { | 
|---|
|  |  |  | manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 制作清零卡 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param intent | 
|---|
|  |  |  | * @param clearOrInitCard | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setClean(Intent intent, CleanCard clearOrInitCard) { | 
|---|
|  |  |  | cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 保存区域表号卡 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param intent | 
|---|
|  |  |  | * @param regionCard | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setRegionCard(Intent intent, RegionCard regionCard) { | 
|---|
|  |  |  | regionFlag = NFCWriteHelper.getInstence(intent, this).writeData(regionCard.toByte(), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 密码卡 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param intent | 
|---|
|  |  |  | * @param passWordCard | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setPassWordCard(Intent intent, PassWordCard passWordCard) { | 
|---|
|  |  |  | passwordFlag = NFCWriteHelper.getInstence(intent, this).writeData(passWordCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 用户电量单价 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param intent | 
|---|
|  |  |  | * @param electricPriceCard | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setElectricPriceCard(Intent intent, ElectricPriceCard electricPriceCard) { | 
|---|
|  |  |  | electricPriceFlag = NFCWriteHelper.getInstence(intent, this).writeData(electricPriceCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 重新注册设备卡 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param intent | 
|---|
|  |  |  | * @param registeredCard | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { | 
|---|
|  |  |  | registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 删除全部用户卡 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param intent | 
|---|
|  |  |  | * @param cleanUserCard | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { | 
|---|
|  |  |  | cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 设置域名卡 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param intent | 
|---|
|  |  |  | * @param domainCard | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void setDomainCard(Intent intent, DomainCard domainCard) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0); | 
|---|
|  |  |  | if (!domainCrdFlag) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1); | 
|---|
|  |  |  | if (!domainCrdFlag) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getTwoByte(), 1, 2); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | domainCrdFlag = false; | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void setTestCard(Intent intent, TestCard testCard) { | 
|---|
|  |  |  | testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { | 
|---|
|  |  |  | configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | configPowerFlag = false; | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void startDetailActivity(String userName, String statu) { | 
|---|
|  |  |  | Intent detail = new Intent(this, RechargeDetailActivityQHAlone.class); | 
|---|
|  |  |  | detail.putExtra("userName", userName); | 
|---|
|  |  |  | detail.putExtra("statu", statu); | 
|---|
|  |  |  | detail.putExtra("userCard", userCard); | 
|---|
|  |  |  | if (!TextUtils.isEmpty(morny)) { | 
|---|
|  |  |  | detail.putExtra("morny", morny); | 
|---|
|  |  |  | detail.putExtra("rechageWater", rechageWater); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!TextUtils.isEmpty(cardNumber)) { | 
|---|
|  |  |  | detail.putExtra("cardNumber", cardNumber); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | startActivity(detail); | 
|---|
|  |  |  | if (NewCardActivityQHAlone.newCardActivity != null) { | 
|---|
|  |  |  | NewCardActivityQHAlone.newCardActivity.finish(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (RechargeActivityQHAlone.rechargeActivity != null) { | 
|---|
|  |  |  | RechargeActivityQHAlone.rechargeActivity.finish(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | NFCWreatActivityQHAlone.nfcWreatActivity.finish(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | protected void onDestroy() { | 
|---|
|  |  |  | super.onDestroy(); | 
|---|
|  |  |  | nfcWreatActivity = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 点击返回时提示用户还未写卡 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @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(NFCWreatActivityQHAlone.this, v -> { | 
|---|
|  |  |  | confirmDialog.dismiss(); | 
|---|
|  |  |  | if (NewCardActivityQHAlone.newCardActivity != null) { | 
|---|
|  |  |  | NewCardActivityQHAlone.newCardActivity.finish(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (RechargeActivityQHAlone.rechargeActivity != null) { | 
|---|
|  |  |  | RechargeActivityQHAlone.rechargeActivity.finish(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | NFCWreatActivityQHAlone.nfcWreatActivity.finish(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | confirmDialog.show(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void titleBack() { | 
|---|
|  |  |  | titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void onClick(View v) { | 
|---|
|  |  |  | back(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|