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(); 
 | 
                    }); 
 | 
                } 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |