| package com.dayu.qiheonlinelibrary.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.net.subscribers.SubscriberListener; | 
| import com.dayu.baselibrary.tools.HexUtil; | 
| import com.dayu.baselibrary.utils.BaseCommon; | 
| 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; | 
| import com.dayu.qiheonlinelibrary.bean.LoginResult; | 
| import com.dayu.qiheonlinelibrary.bean.OpenCardResult; | 
| import com.dayu.qiheonlinelibrary.bean.ReplaceCardResult; | 
| import com.dayu.qiheonlinelibrary.card.CleanCard; | 
| import com.dayu.qiheonlinelibrary.card.CleanUserCard; | 
| import com.dayu.qiheonlinelibrary.card.ConfigurationPowerCard; | 
| import com.dayu.qiheonlinelibrary.card.ConfigureDeviceRegistrationCrad; | 
| import com.dayu.qiheonlinelibrary.card.DomainCard; | 
| import com.dayu.qiheonlinelibrary.card.ElectricPriceCard; | 
| import com.dayu.qiheonlinelibrary.card.ManageCard; | 
| import com.dayu.qiheonlinelibrary.card.ManagerToUserCard; | 
| import com.dayu.qiheonlinelibrary.card.PassWordCard; | 
| import com.dayu.qiheonlinelibrary.card.RegionCard; | 
| import com.dayu.qiheonlinelibrary.card.RegisteredCard; | 
| import com.dayu.qiheonlinelibrary.card.TestCard; | 
| import com.dayu.qiheonlinelibrary.card.UserCard; | 
| import com.dayu.qiheonlinelibrary.databinding.ActivityWriteTextQhlBinding; | 
| import com.dayu.qiheonlinelibrary.dbBean.RechargeBean; | 
| import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; | 
| import com.dayu.qiheonlinelibrary.net.ApiManager; | 
| import com.dayu.qiheonlinelibrary.net.BaseResponse; | 
| import com.dayu.qiheonlinelibrary.tools.NfcReadHelper; | 
| 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.HashMap; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * Copyright (C), 2023, | 
|  * Author: zuo | 
|  * Date: 2023-11-08 21:19 | 
|  * Description: nfc写卡界面 | 
|  */ | 
| public class NFCWreatActivityQHOline extends QHOlineBaseNfcActivity { | 
|   | 
|     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 manageCardFlag = false; | 
|     boolean registeredFlag = false; | 
|     boolean administrativeCardFlag = false; | 
|     boolean cleanUserCardFlag = false; | 
|   | 
|     boolean domainCrdFlag = false; | 
|   | 
|   | 
|     boolean configDeviceRegiestFlag = false; | 
|   | 
|     boolean configPowerFlag = false; | 
|   | 
|     UserCardBean userCardBean; | 
|   | 
|     String morny; | 
|     String userName; | 
|     RechargeBean rechargeBean; | 
|     Intent intent; | 
|     //打印 | 
|     QHOnLineApplication baseApp; | 
|   | 
|     public static NFCWreatActivityQHOline nfcWreatActivity; | 
|     /** | 
|      * 是否是用户卡,假如是用户卡的话需要检测卡片是否已经开过户,假如已开户则报错不能再写卡 | 
|      */ | 
|     boolean isUser = false;// | 
|   | 
|     //是否是充值过程 | 
|     boolean isRecharge = false; | 
|   | 
|     ActivityWriteTextQhlBinding binding; | 
|   | 
|     //当前卡的物理卡号 | 
|     String cardNumber; | 
|     ConfirmDialog confirmDialog; | 
|     //旧的卡id | 
|     String iccardInfoId; | 
|     //补卡类型 | 
|     int replaceType; | 
|     //补卡工本费用 | 
|     String rechargeCardMoney; | 
|     ReplacementPriceDialog replacementPriceDialog; | 
|     ManagerToUserCard managerToUserCard; | 
|   | 
|     @Override | 
|     protected void onCreate(Bundle savedInstanceState) { | 
|         super.onCreate(savedInstanceState); | 
|         try { | 
|             binding = ActivityWriteTextQhlBinding.inflate(LayoutInflater.from(this)); | 
|             setContentView(binding.getRoot()); | 
|             nfcWreatActivity = this; | 
|             baseApp = QHOnLineApplication.getInstance(); | 
|             getData(); | 
|             titleBack(); | 
|         } 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("userCardBean")) { | 
|                 userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean"); | 
|             } | 
|             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"); | 
|                 rechargeBean = (RechargeBean) this.getIntent().getSerializableExtra("rechargeBean"); | 
|                 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"); | 
|                 //补卡类型 | 
|                 replaceType = this.getIntent().getIntExtra("replaceType", 0); | 
|                 replacementPriceDialog = new ReplacementPriceDialog(this, data -> { | 
|                     if (TextUtils.isEmpty(data)) { | 
|                         rechargeCardMoney = "0"; | 
|                     } | 
|                     rechargeCardMoney = data; | 
|                     binding.cardData.setText("补卡工本费:" + rechargeCardMoney + "元"); | 
|                     replacementPriceDialog.dismiss(); | 
|                 }); | 
|                 replacementPriceDialog.show(); | 
|             } | 
|   | 
|   | 
|         } 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]; | 
|                 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(NFCWreatActivityQHOline.this, "请勿移动卡片,读卡失败请重试!!"); | 
|             } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) { | 
|                 TipUtil.show(NFCWreatActivityQHOline.this, "卡片未能识别,请检查卡片是否是本公司卡片"); | 
|             } else { | 
|                 //读卡成功 | 
|                 Log.i("NFCWreatActivity", "olduserCard!=null  saveData"); | 
| // | 
|                 openCard(cardNumber, 1, userCardBean.getPersonId(), String.valueOf(userCardBean.getCardMorny())); | 
|   | 
|   | 
|             } | 
|         } 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 (electricPriceCard != null) { | 
|                     electricPriceFlag = NFCWreatUtils.getInstance(this, baseDao).setElectricPriceCard(intent, electricPriceCard); | 
|                 } | 
|                 if (passWordCard != null) { | 
|                     passwordFlag = NFCWreatUtils.getInstance(this, baseDao).setPassWordCard(intent, passWordCard); | 
|                 } | 
|                 if (regionCard != null) { | 
|                     regionFlag = NFCWreatUtils.getInstance(this, baseDao).setRegionCard(intent, regionCard); | 
|                 } | 
|                 if (cleanCard != null) { | 
|                     cleanFlag = NFCWreatUtils.getInstance(this, baseDao).setClean(intent, cleanCard); | 
|                 } | 
|                 if (manageCard != null) { | 
|                     manageCardFlag = NFCWreatUtils.getInstance(this, baseDao).setmanageCard(intent, manageCard); | 
|                 } | 
|                 if (registeredCard != null) { | 
|                     registeredFlag = NFCWreatUtils.getInstance(this, baseDao).setRegisteredCard(intent, registeredCard); | 
|                 } | 
|                 if (cleanUserCard != null) { | 
|                     cleanUserCardFlag = NFCWreatUtils.getInstance(this, baseDao).setCleanUserCard(intent, cleanUserCard); | 
|                 } | 
|                 if (domainCard != null) { | 
|                     domainCrdFlag = NFCWreatUtils.getInstance(this, baseDao).setDomainCard(intent, domainCard); | 
|                 } | 
|                 if (configureDeviceRegistrationCrad != null) { | 
|                     configDeviceRegiestFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); | 
|                 } | 
|                 if (configurationPowerCard != null) { | 
|                     configPowerFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigurationPower(intent, configurationPowerCard); | 
|                 } | 
|                 if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || domainCrdFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) { | 
|                     try { | 
|                         if (!TextUtils.isEmpty(morny)) { | 
|                             TipUtil.show(NFCWreatActivityQHOline.this, "充值成功", () -> NFCWreatActivityQHOline.this.finish()); | 
|                         } else { | 
|                             TipUtil.show(NFCWreatActivityQHOline.this, "写卡成功", () -> NFCWreatActivityQHOline.this.finish()); | 
|                         } | 
|   | 
|                     } catch (Exception e) { | 
|                         e.printStackTrace(); | 
|                         CrashReport.postCatchedException(e); | 
|                     } | 
|                 } else { | 
|                     TipUtil.show(NFCWreatActivityQHOline.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; | 
|             if (isUser) { | 
|                 //新卡注册逻辑 | 
|                 checkHasUser(); | 
|             } else if (isRecharge) { | 
|                 //充值逻辑 | 
|                 rechargeWreatCard(); | 
|             } else if (!TextUtils.isEmpty(iccardInfoId)) { | 
|                 //补卡逻辑 | 
|                 replaceCard(); | 
|             } else { | 
|                 //其他管理卡逻辑 | 
|                 saveData(); | 
|             } | 
|         } 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(); | 
|             //判断是否充值的是一个卡 | 
|             if (cardNumberThis.equalsIgnoreCase(rechargeBean.getCardNumber())) { | 
|                 userCard.setRechargeDate(Calendar.getInstance()); | 
|                 if (WriteCardUtils.setUser(intent, userCard, this)) { | 
|                     confromRecharge(rechargeBean.getOrderId(), 0); | 
|                 } else { | 
|                     TipUtil.show(NFCWreatActivityQHOline.this, "写卡失败,请重新再试"); | 
|                 } | 
|             } else { | 
|                 TipUtil.show(NFCWreatActivityQHOline.this, "读取的卡和充值的卡不一致"); | 
|             } | 
|         } catch (Exception e) { | 
|             TipUtil.show(NFCWreatActivityQHOline.this, "读取错误,请重试"); | 
|         } | 
|     } | 
|   | 
|     private void startDetailActivity(String statu) { | 
|         Intent detail = new Intent(this, RechargeDetailActivityQHOline.class); | 
|         detail.putExtra("statu", statu); | 
|         detail.putExtra("userCard", userCard); | 
|         if (!TextUtils.isEmpty(morny)) { | 
|   | 
|             detail.putExtra("rechargeBean", rechargeBean); | 
|         } else { | 
|             detail.putExtra("userCardBean", userCardBean); | 
|         } | 
|         startActivity(detail); | 
|         if (NewCardActivityQHOline.newCardActivity != null) { | 
|             NewCardActivityQHOline.newCardActivity.finish(); | 
|         } | 
|         if (RechargeActivityQHOline.rechargeActivity != null) { | 
|             RechargeActivityQHOline.rechargeActivity.finish(); | 
|         } | 
|         NFCWreatActivityQHOline.nfcWreatActivity.finish(); | 
|     } | 
|   | 
| @Override | 
|     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(NFCWreatActivityQHOline.this, v -> { | 
|             confirmDialog.dismiss(); | 
|             if (NewCardActivityQHOline.newCardActivity != null) { | 
|                 NewCardActivityQHOline.newCardActivity.finish(); | 
|             } | 
|             if (RechargeActivityQHOline.rechargeActivity != null) { | 
|                 RechargeActivityQHOline.rechargeActivity.finish(); | 
|             } | 
|             NFCWreatActivityQHOline.nfcWreatActivity.finish(); | 
|         }); | 
|         confirmDialog.show(); | 
|     } | 
|   | 
|     private void titleBack() { | 
|         titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() { | 
|             @Override | 
|             public void onClick(View v) { | 
|                 back(); | 
|             } | 
|         }); | 
|     } | 
|   | 
|     /** | 
|      * IC开卡接口 | 
|      * | 
|      * @param iccardNum     物理卡号 | 
|      * @param iccardType    ic卡类型 1 用户卡 2 管理卡 | 
|      * @param peasantId | 
|      * @param rechargeMoney | 
|      */ | 
|     private void openCard(String iccardNum, int iccardType, String peasantId, String rechargeMoney) { | 
|         Map<String, Object> data = new HashMap<>(); | 
|         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, "iccard/recharge/openCard", OpenCardResult.class, data, new SubscriberListener<BaseResponse<OpenCardResult>>() { | 
|             @Override | 
|             public void onNext(BaseResponse<OpenCardResult> t) { | 
|                 if (t.isSuccess()) { | 
|                     String userCode = t.getData().getIccardCode(); | 
|                     userCard.setUserCode(userCode.substring(0, 12)); | 
|                     userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16))); | 
|                     userCardBean.setCardNumber(cardNumber); | 
|                     userCardBean.setUserCode(userCode); | 
|                     if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivityQHOline.this)) { | 
|                         confromOpenCard(t.getData().getIccardRechargeRecordId(), 0); | 
|                     } else { | 
|                         confromOpenCard(t.getData().getIccardRechargeRecordId(), 2); | 
|                     } | 
|                 } else { | 
|                     TipUtil.show(t.getMsg()); | 
|                 } | 
|             } | 
|         }); | 
|   | 
|     } | 
|   | 
|     /** | 
|      * 确认开卡写卡 | 
|      * | 
|      * @param iccardRechargeRecordId | 
|      * @param writeCardStatus | 
|      */ | 
|     private void confromOpenCard(String iccardRechargeRecordId, int writeCardStatus) { | 
|         Map<String, Object> data = new HashMap<>(); | 
|         data.put("iccardRechargeRecordId", iccardRechargeRecordId); | 
|         //写卡状态 0 写卡成功 1 待写卡 2 写卡失败 | 
|         data.put("writeCardStatus", writeCardStatus); | 
|   | 
|   | 
|         ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/openCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { | 
|             @Override | 
|             public void onNext(BaseResponse<LoginResult> t) { | 
|                 if (t.isSuccess()) { | 
|                     //{"code":"0","msg":"操作成功","data":{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-05 17:04:15","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820385315354320898","iccardProtocolName":"","totalRechargeElectricAmount":0.00,"logicState":1,"username":"","state":1,"familySize":"","yearRechargeMoney":0.00,"thisSaleAmount":"","onlyRechargeMoney":"","identityCard":"","iccardBrand":"","iccardBalanceMoney":0.00,"openOperatorUsername":"","adName":"","rechargeWaterAmount":"","openOperatorUserId":"1816297106145103873","lastSwipeTime":"","address":"","yearCompensateMoney":0.00,"iccardProtocolOpenMoney":"","peasantId":"1820374742679953410","reissueTimes":0,"iccardProtocolReissueMoney":"","iccardProtocolId":"","yearRechargeWaterAmount":0.00,"iccardBalanceElectric":0.00,"iccardStatus":0,"phone":"","lastRechargeMoney":0.00,"iccardOpenTime":"","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"BADA4044"}} | 
|                     if (writeCardStatus == 0) { | 
|                         baseDao.userCardDao().insert(userCardBean); | 
|                         startDetailActivity("终端写卡"); | 
|                     } else { | 
|                         TipUtil.show(NFCWreatActivityQHOline.this, "写卡失败请重新贴卡!"); | 
|                     } | 
|                 } | 
|             } | 
|         }); | 
|   | 
|     } | 
|   | 
|     /** | 
|      * 确认充值回调 | 
|      * | 
|      * @param iccardRechargeRecordId | 
|      * @param writeCardStatus | 
|      */ | 
|     private void confromRecharge(String iccardRechargeRecordId, int writeCardStatus) { | 
|         Map<String, Object> data = new HashMap<>(); | 
|         data.put("iccardRechargeRecordId", iccardRechargeRecordId); | 
|         //写卡状态 0 写卡成功 1 待写卡 2 写卡失败 | 
|         data.put("writeCardStatus", writeCardStatus); | 
|         data.put("writeCardStatus", writeCardStatus); | 
|   | 
|         ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/rechargeCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { | 
|             @Override | 
|             public void onNext(BaseResponse<LoginResult> t) { | 
|                 if (t.isSuccess()) { | 
|                     if (writeCardStatus == 0) { | 
|                         try { | 
|                             baseDao.rechargeDao().insert(rechargeBean); | 
|                         } catch (Exception e) { | 
|                             e.printStackTrace(); | 
|                         } | 
|                         //   打印相关 | 
|                         PrintUtils.printerData(rechargeBean); | 
|                         startDetailActivity("终端写卡"); | 
|                     } else { | 
|                         TipUtil.show(NFCWreatActivityQHOline.this, "写卡失败请重新贴卡!"); | 
|                     } | 
|                 } else { | 
|                     ToastUtil.show(t.getMsg()); | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|     /** | 
|      * 补卡逻辑 | 
|      */ | 
|     private void replaceCard() { | 
|         cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber(); | 
|         if (replaceType == BaseCommon.REPLACE_NO_CARD) { | 
|             replaceCardPost("", ""); | 
|         } else if (replaceType == BaseCommon.REPLACE_HAS_CARD) { | 
|             managerToUserCard = NfcReadHelper.getInstence(intent, NFCWreatActivityQHOline.this).getManagerToUserCardData(new ManagerToUserCard()); | 
|             //判断是否已经在控制器端刷卡 | 
|             if (managerToUserCard.getCardWriteState() == 1) { | 
|                 replaceCardPost(MornyUtil.changeF2Y(managerToUserCard.getBalance()), MornyUtil.changeF2Y(managerToUserCard.getSurplusElecticity())); | 
|             } else { | 
|                 TipUtil.show("请在控制器端刷卡"); | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 补卡 | 
|      */ | 
|     private void replaceCardPost(String iccardBalanceMoney, String iccardBalanceElectric) { | 
|         Map<String, Object> data = new HashMap<>(); | 
|         data.put("equipCode", DeviceUtils.getSN()); | 
|         //充值卡费 | 
|         data.put("rechargeCardMoney", rechargeCardMoney); | 
|         // 旧卡的id | 
|         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, "iccard/recharge/reissueOpenCard", ReplaceCardResult.class, data, new SubscriberListener<BaseResponse<ReplaceCardResult>>() { | 
|             @Override | 
|             public void onNext(BaseResponse<ReplaceCardResult> t) { | 
|                 if (t.isSuccess()) { | 
|                     ReplaceCardResult replaceCardResult = t.getData(); | 
|                     userCard = new UserCard(); | 
|                     userCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber)); | 
|                     String userCode = t.getData().getIccardCode(); | 
|                     userCard.setUserCode(userCode.substring(0, 12)); | 
|                     userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16))); | 
|                     userCard.setCardWriteState(0); | 
|                     userCard.setCardState(1); | 
|                     userCard.setBalance(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceMoney())); | 
|                     userCard.setSurplusElecticity(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceElectric())); | 
|                     userCard.setTotalMorny(MornyUtil.changeY2F(replaceCardResult.getTotalRechargeMoney())); | 
|                     userCard.setRechargeDate(Calendar.getInstance()); | 
|                     userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr)); | 
|                     if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivityQHOline.this)) { | 
|                         userCardBean.setCardNumber(cardNumber); | 
|                         userCardBean.setUserCode(userCode); | 
|                         userCardBean.setDate(System.currentTimeMillis()); | 
|                         baseDao.userCardDao().insert(userCardBean); | 
|                         confromReplaceCard(replaceCardResult.getIccardRechargeRecordId(), 0); | 
|                     } else { | 
|                         TipUtil.show(NFCWreatActivityQHOline.this, "写卡失败,请重试"); | 
|                     } | 
|                     //   打印相关 | 
| //                    setPrinterData(rechargeBean); | 
| //                    startDetailActivity(rechargeBean.getUserName(), "终端写卡"); | 
|                 } else { | 
|                     ToastUtil.show(t.getMsg()); | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|     /** | 
|      * 确认补卡写卡成功 | 
|      * | 
|      * @param iccardRechargeRecordId | 
|      * @param writeCardStatus | 
|      */ | 
|     private void confromReplaceCard(String iccardRechargeRecordId, int writeCardStatus) { | 
|         Map<String, Object> data = new HashMap<>(); | 
|         data.put("equipCode", DeviceUtils.getSN()); | 
|         data.put("iccardRechargeRecordId", iccardRechargeRecordId); | 
|         //写卡状态 0 写卡成功 1 待写卡 2 写卡失败 | 
|         data.put("writeCardStatus", writeCardStatus); | 
|   | 
|         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(NFCWreatActivityQHOline.this, "补卡成功!", () -> { | 
|                         if (UserSearchActivityQHOline.userSearchActivity != null) { | 
|                             UserSearchActivityQHOline.userSearchActivity.finish(); | 
|                             UserSearchActivityQHOline.userSearchActivity = null; | 
|                         } | 
|                         NFCWreatActivityQHOline.this.finish(); | 
|                     }); | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|   | 
| } |