| | |
| | | import android.widget.Toast; |
| | | |
| | | import com.dayu.baselibrary.tools.BcdUtil; |
| | | import com.dayu.baselibrary.utils.AidlUtil; |
| | | import com.dayu.baselibrary.tools.print.PrintAdater; |
| | | import com.dayu.baselibrary.tools.print.ShangMiAidlUtil; |
| | | import com.dayu.baselibrary.utils.BaseCommon; |
| | | import com.dayu.baselibrary.utils.CRC8; |
| | | import com.dayu.baselibrary.utils.DateUtil; |
| | | import com.dayu.baselibrary.view.TitleBar; |
| | | import com.dayu.henanlibrary.utils.DeviceNumberUtils; |
| | | import com.dayu.baselibrary.utils.MornyUtil; |
| | | import com.dayu.baselibrary.utils.TipUtil; |
| | | import com.dayu.henanlibrary.HeNanApplication; |
| | | import com.dayu.henanlibrary.card.CleanCard; |
| | | import com.dayu.henanlibrary.card.CleanUserCard; |
| | | import com.dayu.henanlibrary.card.ConfigurationPowerCard; |
| | | import com.dayu.baselibrary.view.ConfirmDialog; |
| | | import com.dayu.baselibrary.view.TitleBar; |
| | | import com.dayu.henanlibrary.card.CleanCardHN; |
| | | import com.dayu.henanlibrary.card.CleanUserCardHN; |
| | | import com.dayu.henanlibrary.card.ConfigurationPowerCardHN; |
| | | import com.dayu.henanlibrary.card.ConfigureDeviceRegistrationCrad; |
| | | import com.dayu.henanlibrary.card.DomainCard; |
| | | import com.dayu.henanlibrary.card.ManageCard; |
| | | import com.dayu.henanlibrary.card.RegisteredCard; |
| | | import com.dayu.henanlibrary.card.TestCard; |
| | | import com.dayu.henanlibrary.card.UserCard; |
| | | import com.dayu.henanlibrary.databinding.ActivityWriteTextBinding; |
| | | import com.dayu.henanlibrary.card.ManageCardHN; |
| | | import com.dayu.henanlibrary.card.RegisteredCardHN; |
| | | import com.dayu.henanlibrary.card.TestCardHN; |
| | | import com.dayu.henanlibrary.card.UserCardHN; |
| | | import com.dayu.henanlibrary.databinding.ActivityWriteTextHnBinding; |
| | | import com.dayu.henanlibrary.dbBean.AdminDataBean; |
| | | import com.dayu.henanlibrary.dbBean.ElectricPriceBean; |
| | | import com.dayu.henanlibrary.dbBean.RechargeBean; |
| | |
| | | import com.dayu.henanlibrary.tools.NFCWriteHelper; |
| | | import com.dayu.henanlibrary.tools.NfcReadHelper; |
| | | import com.dayu.henanlibrary.tools.WriteCardUtils; |
| | | import com.dayu.henanlibrary.utils.MyCommon; |
| | | import com.dayu.henanlibrary.utils.CardCommon; |
| | | import com.dayu.henanlibrary.utils.DeviceNumberUtils; |
| | | import com.dayu.henanlibrary.utils.SocketUtil; |
| | | import com.dayu.henanlibrary.view.ConfirmDialog; |
| | | import com.dayu.henanlibrary.view.ProgressDialog; |
| | | import com.tencent.bugly.crashreport.CrashReport; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Copyright (C), 2023, |
| | |
| | | * Date: 2023-11-08 21:19 |
| | | * Description: nfc写卡界面 |
| | | */ |
| | | public class NFCWreatActivity extends BaseNfcActivity { |
| | | public class NFCWreatActivity extends HNBaseNfcActivity { |
| | | public static String TAG = "NFCWreatActivity"; |
| | | |
| | | boolean cleanFlag = false; |
| | |
| | | Intent intent; |
| | | |
| | | |
| | | RegisteredCard registeredCard; |
| | | CleanUserCard cleanUserCard; |
| | | ManageCard manageCard; |
| | | RegisteredCardHN registeredCard; |
| | | CleanUserCardHN cleanUserCard; |
| | | ManageCardHN manageCard; |
| | | DomainCard domainCard; |
| | | |
| | | CleanCard cleanCard; |
| | | CleanCardHN cleanCard; |
| | | ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; |
| | | TestCard testCard; |
| | | TestCardHN testCard; |
| | | |
| | | ConfigurationPowerCard configurationPowerCard; |
| | | ConfigurationPowerCardHN configurationPowerCard; |
| | | //打印 |
| | | |
| | | public static NFCWreatActivity nfcWreatActivity; |
| | |
| | | boolean isRecharge = false; |
| | | //充值通信是否完成 |
| | | boolean rechargeIsOk = false; |
| | | ActivityWriteTextBinding binding; |
| | | ActivityWriteTextHnBinding binding; |
| | | ConfirmDialog confirmDialog; |
| | | |
| | | @Override |
| | | public void onNfcBack(Intent intent) { |
| | | try { |
| | | this.intent = intent; |
| | | startAnim(); |
| | | Log.i("NFCWreatActivity", "isUser:" + isUser); |
| | | if (isUser) { |
| | | checkHasUser(); |
| | | } else if (isRecharge) { |
| | | if (rechargeIsOk) { |
| | | rechargeWrratCard(); |
| | | } else { |
| | | Toast.makeText(this, "正在通信请稍后", Toast.LENGTH_SHORT).show(); |
| | | } |
| | | |
| | | } else { |
| | | saveData(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | CrashReport.postCatchedException(e); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | | super.onCreate(savedInstanceState); |
| | | try { |
| | | binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this)); |
| | | binding = ActivityWriteTextHnBinding.inflate(LayoutInflater.from(this)); |
| | | setContentView(binding.getRoot()); |
| | | nfcWreatActivity = this; |
| | | setData(); |
| | | titleBack(); |
| | | getData(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | private void getData() { |
| | | try { |
| | | if (this.getIntent().hasExtra("userCard")) { |
| | | userCard = (UserCard) this.getIntent().getSerializableExtra("userCard"); |
| | | userCard = (UserCardHN) this.getIntent().getSerializableExtra("userCard"); |
| | | } |
| | | if (this.getIntent().hasExtra("cleanCard")) { |
| | | cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard"); |
| | | cleanCard = (CleanCardHN) this.getIntent().getSerializableExtra("cleanCard"); |
| | | binding.cardData.setText("制作清零卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("manageCard")) { |
| | | manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard"); |
| | | manageCard = (ManageCardHN) this.getIntent().getSerializableExtra("manageCard"); |
| | | binding.cardData.setText("制作管理卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("registeredCard")) { |
| | | registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard"); |
| | | registeredCard = (RegisteredCardHN) this.getIntent().getSerializableExtra("registeredCard"); |
| | | binding.cardData.setText("制作重新注册设备卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("dbUserCard")) { |
| | |
| | | isUser = true; |
| | | } |
| | | if (this.getIntent().hasExtra("cleanUserCard")) { |
| | | cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard"); |
| | | cleanUserCard = (CleanUserCardHN) 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("domainCard_xinxiang")) { |
| | | domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard_xinxiang"); |
| | | binding.cardData.setText("制作设置新乡域名卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("domainCard_luyi")) { |
| | | domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard_luyi"); |
| | | binding.cardData.setText("制作设置鹿邑域名卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("testCard")) { |
| | | testCard = (TestCard) this.getIntent().getSerializableExtra("testCard"); |
| | | testCard = (TestCardHN) this.getIntent().getSerializableExtra("testCard"); |
| | | binding.cardData.setText("制作测试卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) { |
| | |
| | | binding.cardData.setText("制作配置设备注册信息卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("configurationPowerCard")) { |
| | | configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard"); |
| | | configurationPowerCard = (ConfigurationPowerCardHN) this.getIntent().getSerializableExtra("configurationPowerCard"); |
| | | binding.cardData.setText("制作配置水泵功率卡"); |
| | | } |
| | | if (this.getIntent().hasExtra("morny")) { |
| | |
| | | |
| | | String cardType = NfcReadHelper.getInstence(intent, this).getCradType(); |
| | | Log.i("NFCWreatActivity", "cardType=" + cardType); |
| | | if (cardType.equals(MyCommon.USER_CARD_TYPE_1) || |
| | | cardType.equals(MyCommon.USER_CARD_TYPE_2) || |
| | | cardType.equals(MyCommon.USER_CARD_TYPE_3) |
| | | 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("-1")) { |
| | | } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) { |
| | | TipUtil.show(NFCWreatActivity.this, "请勿移动卡片,读卡失败请重试!!"); |
| | | } else if (cardType.equals("-2")) { |
| | | TipUtil.show(NFCWreatActivity.this, "读卡失败,请检查卡是否是用户卡"); |
| | | } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) { |
| | | TipUtil.show(NFCWreatActivity.this, ",卡片未能识别,请检查卡片是否是本公司卡片"); |
| | | } else { |
| | | Log.i("NFCWreatActivity", "olduserCard!=null saveData"); |
| | | saveData(); |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onNewIntent(Intent intent) { |
| | | super.onNewIntent(intent); |
| | | try { |
| | | this.intent = intent; |
| | | startAnim(); |
| | | Log.i("NFCWreatActivity", "isUser:" + isUser); |
| | | if (isUser) { |
| | | checkHasUser(); |
| | | } else if (isRecharge) { |
| | | if (rechargeIsOk) { |
| | | rechargeWrratCard(); |
| | | } else { |
| | | Toast.makeText(this, "正在通信请稍后", Toast.LENGTH_SHORT).show(); |
| | | } |
| | | |
| | | } else { |
| | | saveData(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | CrashReport.postCatchedException(e); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 打印机相关信息 |
| | |
| | | */ |
| | | private void setPrinterData(RechargeBean rechargeBean) { |
| | | try { |
| | | StringBuffer data = new StringBuffer(); |
| | | List<String> data = new ArrayList<>(); |
| | | if (rechargeBean != null) { |
| | | data.append("*****************************" + "\n"); |
| | | data.append(getResources().getString(com.dayu.baselibrary.R.string.login_title)).append("\n"); |
| | | data.append("设备序列号:").append(rechargeBean.getSerial()).append("\n"); |
| | | data.append("用户名:").append(rechargeBean.getUserName()).append("\n"); |
| | | // data.append("户 号:" + rechargeBean.getUserNum() + "\n"); |
| | | data.append("充值金额:").append(rechargeBean.getMorny()).append("元").append("\n"); |
| | | data.append("卡内余额:").append(rechargeBean.getBalance()).append("元").append("\n"); |
| | | data.append("日 期:").append(DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2)).append("\n\n"); |
| | | data.append("*****************************"); |
| | | |
| | | data.add("*****************************"); |
| | | data.add("设备序列号:" + rechargeBean.getSerial()); |
| | | data.add("用户名:" + rechargeBean.getUserName()); |
| | | data.add("充值金额:" + rechargeBean.getMorny() + "元"); |
| | | data.add("卡内余额:" + rechargeBean.getBalance() + "元"); |
| | | data.add("日 期:" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2)); |
| | | data.add("*****************************"); |
| | | } |
| | | |
| | | float size = 26; |
| | | |
| | | try { |
| | | AidlUtil.getInstance().printText(data.toString(), size, true, false); |
| | | AidlUtil.getInstance().print3Line(); |
| | | PrintAdater.getInstance().printText(data, size, true, false); |
| | | ShangMiAidlUtil.getInstance().print3Line(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | |
| | | //往卡内写充值后的数据 |
| | | private void rechargeWrratCard() { |
| | | UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData(); |
| | | UserCardHN userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData(); |
| | | if (userCardold != null) { |
| | | //判断是否充值的是一个卡 |
| | | if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode()) || isAgainWrite) { |
| | |
| | | stopAnim(); |
| | | } |
| | | |
| | | private void setmanageCard(Intent intent, final ManageCard manageCard) { |
| | | manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0); |
| | | private void setmanageCard(Intent intent, final ManageCardHN manageCard) { |
| | | try { |
| | | manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param intent |
| | | * @param clearOrInitCard |
| | | */ |
| | | private void setClean(Intent intent, final CleanCard clearOrInitCard) { |
| | | cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0); |
| | | private void setClean(Intent intent, final CleanCardHN clearOrInitCard) { |
| | | try { |
| | | cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | * @param intent |
| | | * @param registeredCard |
| | | */ |
| | | private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { |
| | | registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0); |
| | | private void setRegisteredCard(Intent intent, RegisteredCardHN registeredCard) { |
| | | try { |
| | | registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param intent |
| | | * @param cleanUserCard |
| | | */ |
| | | private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { |
| | | cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0); |
| | | private void setCleanUserCard(Intent intent, CleanUserCardHN cleanUserCard) { |
| | | try { |
| | | cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 设置域名卡 |
| | | * |
| | | * @param intent |
| | | * @param domainCard |
| | | * @param domainXinXiangCard |
| | | */ |
| | | private void setDomainCard(Intent intent, DomainCard domainCard) { |
| | | private void setDomainCard(Intent intent, DomainCard domainXinXiangCard) { |
| | | try { |
| | | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0); |
| | | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainXinXiangCard.getZeroByte(), 1, 0); |
| | | if (!domainCrdFlag) { |
| | | return; |
| | | } |
| | | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1); |
| | | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainXinXiangCard.getOneByte(), 1, 1); |
| | | if (!domainCrdFlag) { |
| | | return; |
| | | } |
| | | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getTwoByte(), 1, 2); |
| | | domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainXinXiangCard.getTwoByte(), 1, 2); |
| | | } catch (Exception e) { |
| | | domainCrdFlag = false; |
| | | throw new RuntimeException(e); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | private void setTestCard(Intent intent, TestCard testCard) { |
| | | private void setTestCard(Intent intent, TestCardHN testCard) { |
| | | testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(baseDao), 1, 0); |
| | | } |
| | | |
| | |
| | | configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0); |
| | | } |
| | | |
| | | private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { |
| | | private void setConfigurationPower(Intent intent, ConfigurationPowerCardHN configurationPowerCard) { |
| | | try { |
| | | configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0); |
| | | } catch (Exception e) { |
| | | configPowerFlag = false; |
| | | throw new RuntimeException(e); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | |
| | | stateText = new StringBuffer(); |
| | | String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD码00启用 01禁用 02隶属信息不符 03无此卡信息 04其它s |
| | | if (userCard == null) { |
| | | userCard = new UserCard(); |
| | | userCard = new UserCardHN(); |
| | | userCard.setRechargeTimes(0); |
| | | ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst(); |
| | | if (electricPriceBean != null) { |
| | |
| | | //默认是1元 |
| | | userCard.setElectricityPrice(1.000f); |
| | | } |
| | | userCard.setSwipeNumber((short) 0); |
| | | userCard.setSwipeNumber(0); |
| | | userCard.setState("00"); |
| | | userCard.setBalance(0); |
| | | userCard.setAddressCode(adminData.getAddressCode()); |
| | |
| | | ProgressDialog.dismiss(); |
| | | nfcWreatActivity = null; |
| | | } |
| | | |
| | | private void titleBack() { |
| | | titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | back(); |
| | | } |
| | | }); |
| | | } |
| | | } |