左晓为主开发手持机充值管理机
zuoxiao
2023-12-14 d09bdcac6830afaad6e277fb558c16d2aa6187a7
卡标识码列表功能相关,可分辨设置不同类型卡标识码
11个文件已修改
2个文件已添加
222 ■■■■ 已修改文件
app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/card/CleanCard.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/card/ManageCard.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/card/RegisteredCard.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/card/TestCard.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/dao/AppDatabase.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/dao/CardDataDao.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/dbBean/CardData.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_identyfying.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/pickerview_choose.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local.properties 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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