From 389d1e5aedc99a3909c61db855b18a2936919942 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 07 三月 2024 14:37:59 +0800
Subject: [PATCH] 修复设置电量单价时没有保留三位小数的bug

---
 app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java |   84 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 69 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
index 2a419ff..4d570f0 100644
--- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -1,6 +1,8 @@
 package com.dayu.recharge.activity;
 
+import android.annotation.SuppressLint;
 import android.content.Context;
+import android.os.Build;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
@@ -11,11 +13,14 @@
 import com.dayu.recharge.databinding.ActivityAdminSetupBinding;
 import com.dayu.recharge.dbBean.AdminDataBean;
 import com.dayu.recharge.dbBean.IpBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.example.pickerviewlibrary.picker.TeaPickerView;
 import com.example.pickerviewlibrary.picker.entity.PickerData;
 import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener;
 import com.tencent.bugly.crashreport.CrashReport;
+
+import java.lang.reflect.Method;
+import java.util.zip.CRC32;
 
 /**
  * Copyright (C), 2023,
@@ -50,30 +55,29 @@
         adminBinding.setupOk.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                if (!TextUtils.isEmpty(adminBinding.adminName.getText().toString())
-                        && !TextUtils.isEmpty(adminBinding.adminPhone.getText().toString())
-                        && !TextUtils.isEmpty(adminData.getCun())
+                if (!TextUtils.isEmpty(adminData.getCun())
                         && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString())
                 ) {
                     if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) {
-                        adminData.setName(adminBinding.adminName.getText().toString());
-                        adminData.setPhone(adminBinding.adminPhone.getText().toString());
+                        adminBinding.adminAddressCode.setText(adminData.getAddressCode());
                         adminData.setSerial(adminBinding.adminSerial.getText().toString());
                         baseDao.adminDao().insert(adminData);
-                        MyApplication.myApplication.initEasySocket(false, null);
-
-                        ToastUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛");
                         setData();
-                        IpBean ipBean = baseDao.ipDao().findFirst();
+                        IpBean ipBean = MyApplication.myApplication.ipBean;
                         if (ipBean != null) {
                             MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
                         }
-
+                        TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
+                            @Override
+                            public void onCancle() {
+                                AdminSetupActivity.this.finish();
+                            }
+                        });
                     } else {
-                        ToastUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
+                        TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
                     }
                 } else {
-                    ToastUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                    TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
                 }
             }
         });
@@ -104,9 +108,10 @@
             if (adminData != null) {
                 this.adminData = adminData;
                 adminBinding.adminSerial.setText(adminData.getSerial());
-                adminBinding.adminPhone.setText(adminData.getPhone());
-                adminBinding.adminName.setText(adminData.getName());
+                adminBinding.adminAddressCode.setText(adminData.getAddressCode());
                 adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
+            } else {
+                adminBinding.adminSerial.setText("12" + generateUniqueNumber(getSN()));
             }
 
         } catch (Exception e) {
@@ -145,6 +150,7 @@
                         adminData.setAddressCode(pickerData.getSecondText().getCode());
                     }
                     adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
+                    adminBinding.adminAddressCode.setText(adminData.getAddressCode());
                     pickerView.dismiss();
                 }
             });
@@ -155,5 +161,53 @@
         }
     }
 
+    @SuppressLint("MissingPermission")
+    public static String getSN() {
+        String serial = null;
+        try {
+            Class<?> c = Class.forName("android.os.SystemProperties");
+            Method get = c.getMethod("get", String.class);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+                try {
+                    serial = (String) get.invoke(c, "ro.sunmi.serial");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return serial;
+            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                serial = Build.getSerial();
+                return serial;
+            } else {
+                //瀹夊崜8浠ヤ笅浣跨敤Build.SERIAL鐩稿悓鏂瑰紡
+                //return Build.SERIAL;
+                try {
+                    serial = (String) get.invoke(c, "ro.serialno");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return serial;
+            }
+        } catch (ClassNotFoundException e) {
+            throw new RuntimeException(e);
+        } catch (NoSuchMethodException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public static String generateUniqueNumber(String input) {
+        try {
+            // 浣跨敤CRC32鍝堝笇鍑芥暟
+            CRC32 crc32 = new CRC32();
+            crc32.update(input.getBytes());
+            long crcValue = crc32.getValue();
+            // 灏嗗搱甯屽�兼槧灏勫埌6浣嶆暟瀛楃殑鑼冨洿
+            long sixDigitNumber = Math.abs(crcValue) % 1000000;
+            // 鏍煎紡鍖栦负6浣嶆暟瀛楃殑瀛楃涓�
+            return String.format("%06d", sixDigitNumber);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
 
 }

--
Gitblit v1.8.0