app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
@@ -5,8 +5,16 @@ import android.view.LayoutInflater; import android.view.View; import com.dayu.recharge.card.CleanCard; import com.dayu.recharge.card.ConfigurationPowerCard; import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad; import com.dayu.recharge.card.ManageCard; import com.dayu.recharge.card.RegisteredCard; import com.dayu.recharge.card.TestCard; import com.dayu.recharge.databinding.ActivityIdentyfyingBinding; import com.dayu.recharge.dbBean.CardData; import com.dayu.recharge.dbBean.IdentityBean; import com.dayu.recharge.utils.MyCommon; import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.ChooseView; @@ -22,10 +30,15 @@ public class IdentifyingActivity extends BaseActivity { ActivityIdentyfyingBinding binding; IdentityBean myIdentityBean; String[] nianfen = {"管理卡", "清零卡", "重新注册设备卡", "删除全部用户卡", "设置域名卡", "测试卡", "设备信息卡", "水泵功率卡"}; String[] nianfen = {"管理卡", "清零卡", "重新注册设备卡", "删除全部用户卡", "测试卡", "设备信息卡", "水泵功率卡"}; /** * 当前选中的卡类型 */ String cardType; CardData cardData; @Override protected void onCreate(Bundle savedInstanceState) { @@ -38,7 +51,8 @@ ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() { @Override public void onOptionsSelect(int options1) { chooseData(nianfen[options1]); binding.chooseCardTypeText.setText(nianfen[options1]); } }).show(); } @@ -46,49 +60,105 @@ IdentityBean identityBean = baseDao.identityDao().findFirst(); if (identityBean != null) { myIdentityBean = identityBean; binding.electricOldNumber.setText(myIdentityBean.getIdentity()); } else { myIdentityBean = new IdentityBean(); binding.electricOldNumber.setText("3668F7A30119"); } binding.electricOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (TextUtils.isEmpty(cardType)) { TipUtil.show("请选择卡类型"); return; } String data = binding.electricOldNumber.getText().toString(); if (!TextUtils.isEmpty(data)) { myIdentityBean.setIdentity(binding.electricOldNumber.getText().toString()); baseDao.identityDao().insert(myIdentityBean); if (cardData == null) { cardData = new CardData(); cardData.setCardType(cardType); } cardData.setCardIdentifying(data); baseDao.cardDataDao().insert(cardData); TipUtil.show("保存成功"); } else { TipUtil.show("请输入卡标识"); } } }); } private void chooseData(String data) { switch (data) { case "管理卡": cardType = MyCommon.MANAGE_CRAD; cardData = baseDao.cardDataDao().findFirst(MyCommon.MANAGE_CRAD); if (cardData != null) { setData(cardData); } else { binding.electricOldNumber.setText(new ManageCard().getCardData()); } break; case "清零卡": cardType = MyCommon.CLEAN_CARD_TYPE; cardData = baseDao.cardDataDao().findFirst(MyCommon.CLEAN_CARD_TYPE); if (cardData != null) { setData(cardData); } else { binding.electricOldNumber.setText(new CleanCard().getCardData()); } break; case "重新注册设备卡": cardType = MyCommon.REGISTERED_CARD_TYPE; cardData = baseDao.cardDataDao().findFirst(MyCommon.REGISTERED_CARD_TYPE); if (cardData != null) { setData(cardData); } else { binding.electricOldNumber.setText(new RegisteredCard().getCardData()); } break; case "删除全部用户卡": break; case "设置域名卡": cardType = MyCommon.CLEAN_ALL_USER_CARD_TYPE; cardData = baseDao.cardDataDao().findFirst(MyCommon.CLEAN_ALL_USER_CARD_TYPE); if (cardData != null) { setData(cardData); } else { binding.electricOldNumber.setText(new RegisteredCard().getCardData()); } break; case "测试卡": cardType = MyCommon.TEST_CARD_TYPE; cardData = baseDao.cardDataDao().findFirst(MyCommon.TEST_CARD_TYPE); if (cardData != null) { setData(cardData); } else { binding.electricOldNumber.setText(new TestCard().getCardData()); } break; case "设备信息卡": cardType = MyCommon.CONFIGURATION_CARD_TYPE; cardData = baseDao.cardDataDao().findFirst(MyCommon.CONFIGURATION_CARD_TYPE); if (cardData != null) { setData(cardData); } else { binding.electricOldNumber.setText(new ConfigureDeviceRegistrationCrad().getCardData()); } break; case "水泵功率卡": cardType = MyCommon.CONFIGURATION_POWER_CARD_TYPE; cardData = baseDao.cardDataDao().findFirst(MyCommon.CONFIGURATION_POWER_CARD_TYPE); if (cardData != null) { setData(cardData); } else { binding.electricOldNumber.setText(new ConfigurationPowerCard().getCardData()); } break; } } private void setData(CardData cardData) { if (cardData != null) { String Identifying = cardData.getCardIdentifying(); binding.electricOldNumber.setText(Identifying); } } } app/src/main/java/com/dayu/recharge/card/CleanCard.java
@@ -15,6 +15,12 @@ public String cardType = MyCommon.CLEAN_CARD_TYPE;//卡类型 public String cardData = "3668F7A30119";//标识码 public String getCardData() { return cardData; } public byte[] toByte() { Zero zero = new Zero(); return zero.toByte(); app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
@@ -21,6 +21,10 @@ public String cardType = MyCommon.CONFIGURATION_POWER_CARD_TYPE;//卡类型 public String cardData = "A0B1C289";//标识码 public String getCardData() { return cardData; } public String power;//功率 public String getPower() { app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java
@@ -18,6 +18,10 @@ public String cardType = MyCommon.CONFIGURATION_CARD_TYPE;//卡类型 public String cardData = "A0B1C289";//标识码 public String getCardData() { return cardData; } public byte[] toByte() { Zero zero = new Zero(); return zero.toByte(); app/src/main/java/com/dayu/recharge/card/ManageCard.java
@@ -1,8 +1,6 @@ package com.dayu.recharge.card; import com.dayu.recharge.tools.BcdUtil; import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.utils.MornyUtil; import com.dayu.recharge.utils.MyCommon; import java.io.Serializable; @@ -17,6 +15,9 @@ public String cardType = MyCommon.MANAGE_CRAD;//卡类型 public String cardData = "3668F7A30119";//标识码 public String getCardData() { return cardData; } public byte[] toZeroByte() { Zero zero = new Zero(); app/src/main/java/com/dayu/recharge/card/RegisteredCard.java
@@ -15,6 +15,10 @@ public String cardType = MyCommon.REGISTERED_CARD_TYPE;//卡类型 public String cardData = "A0B1C289";//标识码 public String getCardData() { return cardData; } public byte[] toByte() { Zero zero = new Zero(); return zero.toByte(); app/src/main/java/com/dayu/recharge/card/TestCard.java
@@ -15,6 +15,10 @@ public String cardType = MyCommon.TEST_CARD_TYPE;//卡类型 public String cardData = "A0B1C289";//标识码 public String getCardData() { return cardData; } public byte[] toByte() { Zero zero = new Zero(); return zero.toByte(); app/src/main/java/com/dayu/recharge/dao/AppDatabase.java
@@ -4,6 +4,7 @@ import androidx.room.RoomDatabase; import com.dayu.recharge.dbBean.AdminDataBean; import com.dayu.recharge.dbBean.CardData; import com.dayu.recharge.dbBean.DeviceNumber; import com.dayu.recharge.dbBean.DomainBean; import com.dayu.recharge.dbBean.ElectricPriceBean; @@ -20,7 +21,7 @@ * Date: 2023-11-05 16:23 * Description: */ @Database(entities = {DeviceNumber.class,IdentityBean.class,DomainBean.class,ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 1, exportSchema = false) @Database(entities = {CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 2, exportSchema = false) public abstract class AppDatabase extends RoomDatabase { @@ -43,4 +44,6 @@ public abstract IdentityDao identityDao(); public abstract DeviceNumberDao deviceNumberDao(); public abstract CardDataDao cardDataDao(); } app/src/main/java/com/dayu/recharge/dao/CardDataDao.java
New file @@ -0,0 +1,30 @@ package com.dayu.recharge.dao; import androidx.room.Dao; import androidx.room.Insert; import androidx.room.OnConflictStrategy; import androidx.room.Query; import androidx.room.Update; import com.dayu.recharge.dbBean.CardData; /** * Created by Android Studio. * author: zuo * Date: 2023-12-14 * Time: 10:08 * 备注: */ @Dao public interface CardDataDao { @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(CardData cardData); @Update void update(CardData cardData); @Query("select * from CardData where cardType=:cardType limit 1") CardData findFirst(String cardType); } app/src/main/java/com/dayu/recharge/dbBean/CardData.java
New file @@ -0,0 +1,43 @@ package com.dayu.recharge.dbBean; import androidx.room.Entity; import androidx.room.PrimaryKey; /** * Created by Android Studio. * author: zuo * Date: 2023-12-14 * Time: 10:05 * 备注: 卡相关信息 */ @Entity public class CardData { @PrimaryKey(autoGenerate = true) public long id; /** * 卡片类型 */ public String cardType; /** * 卡标识 */ public String cardIdentifying; public String getCardIdentifying() { return cardIdentifying; } public void setCardIdentifying(String cardIdentifying) { this.cardIdentifying = cardIdentifying; } public String getCardType() { return cardType; } public void setCardType(String cardType) { this.cardType = cardType; } } app/src/main/res/layout/activity_identyfying.xml
@@ -10,7 +10,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/dimen_title_height" android:background="@drawable/title_bar_bg" app:centerText="水表脉冲设置" app:centerText="卡标识码设置" app:leftImage="@mipmap/icon_back" /> @@ -31,7 +31,6 @@ android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:hint="请选择卡类型" android:text="@{data.getBuildYearStr}" android:textColor="#000000" android:textSize="18sp" /> app/src/main/res/layout/pickerview_choose.xml
@@ -7,7 +7,7 @@ <RelativeLayout android:layout_width="match_parent" android:background="@color/white" android:background="#ffffff" android:layout_height="45dp"> <TextView @@ -17,8 +17,8 @@ android:layout_marginLeft="20dp" android:gravity="center" android:text="取 消" android:textColor="@color/choose_grey" android:textSize="@dimen/choose_pop_text" /> android:textColor="@color/title_bg" android:textSize="19sp" /> <TextView android:id="@+id/bt_add" @@ -28,8 +28,8 @@ android:layout_marginRight="20dp" android:gravity="center" android:text="确 定" android:textColor="@color/title_color" android:textSize="@dimen/choose_pop_text" /> android:textColor="@color/title_bg" android:textSize="19sp" /> </RelativeLayout> local.properties
@@ -4,5 +4,5 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. #Sat Nov 11 20:12:34 CST 2023 sdk.dir=D\:\\sdk #Thu Dec 14 09:58:29 CST 2023 sdk.dir=D\:\\AndroidStudio\\sdk