From 682caa4cef47046184e860d86ebb8467c11e032f Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 16 十一月 2023 15:54:25 +0800
Subject: [PATCH] 生成excl的修改

---
 app/src/main/java/com/dayu/recharge/activity/MyActivity.java      |   14 +-
 app/src/main/res/layout/activity_new_card.xml                     |   36 +++++--
 app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java |   79 +++++++++++++++
 app/src/main/res/values/styles.xml                                |    2 
 app/src/main/java/com/dayu/recharge/utils/ExcelUtil.java          |   32 ++----
 app/src/main/AndroidManifest.xml                                  |    1 
 app/src/main/java/com/dayu/recharge/activity/BaseActivity.java    |    4 
 gradle.properties                                                 |   22 +--
 app/src/main/res/mipmap-xhdpi/icon_scan.png                       |    0 
 app/src/main/java/com/dayu/recharge/net/SocketNet.java            |    2 
 app/src/main/res/layout/activity_test.xml                         |   21 ++++
 app/libs/ocr-library.aar                                          |    0 
 app/build.gradle                                                  |   34 +++---
 13 files changed, 176 insertions(+), 71 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 70a8e5a..02c2efb 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -27,35 +27,37 @@
     viewBinding {
         enabled = true;
     }
+//    repositories {
+//         flatDir {
+//            dirs 'libs'
+//        }
+//    }
 }
 
 dependencies {
-    implementation fileTree(include: ['*.jar'], dir: 'libs')
-//    implementation 'androidx.appcompat:appcompat:1.6.1'
-//    implementation 'com.google.android.material:material:1.10.0'
+    implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
+    implementation 'com.android.support:appcompat-v7:28.0.0'
+    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+    implementation 'androidx.core:core-ktx:1.8.0'
+    implementation 'androidx.appcompat:appcompat:1.5.0'
     //room鏁版嵁搴�
     implementation "androidx.room:room-runtime:2.3.0"
     implementation "androidx.room:room-ktx:2.3.0"
     runtimeOnly("androidx.room:room-common:2.3.0")
     annotationProcessor "androidx.room:room-compiler:2.3.0"
 
-//    implementation 'com.android.support:appcompat-v7:28.0.0'
-//    implementation('com.jakewharton:butterknife:9.0.0') {
-//        exclude group: 'com.android.support:annotations-v7:28.0.0';
-//        exclude group: 'android.arch.core:common:1.1.1'
-//    }
-//    implementation project(path: ':pickerviewlibrary')
-//    implementation files('libs\\AMap_Location_V6.2.0_20221026.jar')
-//    annotationProcessor('com.jakewharton:butterknife-compiler:9.0.0') {
-//        exclude group: 'android.arch.core:common:1.1.1'
-//    }
-//    implementation 'com.android.support:support-v4:28.0.0-alpha1'
-//    implementation 'org.xutils:xutils:3.8.5'
-//    implementation files('libs/core-3.3.0.jar')
     implementation 'com.google.zxing:core:3.4.1'
     implementation group: 'net.sourceforge.jexcelapi', name: 'jxl', version: '2.6.12'
     implementation 'com.wang.avi:library:2.1.3'
     implementation project(':pickerviewlibrary')
     implementation project(':easysocket')
     implementation 'com.tencent.bugly:crashreport:latest.release'
+//    澶勭悊鍥剧墖
+//    implementation (name: 'ocr-library', ext: 'aar')
+    //鏉冮檺
+    implementation ('com.guolindev.permissionx:permissionx:1.7.1'){
+        exclude group: 'androidx.core';
+        exclude group: 'androidx.appcompat';
+        exclude group: 'androidx.annotation';
+    }
 }
\ No newline at end of file
diff --git a/app/libs/ocr-library.aar b/app/libs/ocr-library.aar
new file mode 100644
index 0000000..43f4663
--- /dev/null
+++ b/app/libs/ocr-library.aar
Binary files differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c4679d7..5ca0db9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -63,6 +63,7 @@
         <activity
             android:name=".activity.NewCardActivity"
             android:exported="true"
+            android:screenOrientation="portrait"
             android:launchMode="singleTop">
             <intent-filter>
                 <action android:name="android.nfc.action.TAG_DISCOVERED" />
diff --git a/app/src/main/java/com/dayu/recharge/activity/BaseActivity.java b/app/src/main/java/com/dayu/recharge/activity/BaseActivity.java
index e6e62f7..3fefb90 100644
--- a/app/src/main/java/com/dayu/recharge/activity/BaseActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/BaseActivity.java
@@ -4,6 +4,8 @@
 import android.os.Bundle;
 import android.view.View;
 
+import androidx.appcompat.app.AppCompatActivity;
+
 import com.dayu.recharge.R;
 import com.dayu.recharge.dao.AppDatabase;
 import com.dayu.recharge.dao.BaseDaoSingleton;
@@ -13,7 +15,7 @@
  * Created by zuoxiao on 2018/12/20.
  */
 
-public class BaseActivity extends Activity {
+public class BaseActivity extends AppCompatActivity {
 
     public TitleBar titleBar = null;
     public  AppDatabase baseDao;
diff --git a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
index 18d07ee..b8e0b6f 100644
--- a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
@@ -124,11 +124,11 @@
         }
         List listData = new ArrayList();
         try {
-//            if (isRechargeList) {
-//                listData = SqLite_DB_Utile.getInit(MyActivity.this).selector(RechargeBean.class).where("date", ">=", beginTime).and("date", "<=", endTime).findAll();
-//            } else {
-//                listData = SqLite_DB_Utile.getInit(MyActivity.this).selector(UserCardBean.class).where("date", ">=", beginTime).and("date", "<=", endTime).findAll();
-//            }
+            if (isRechargeList) {
+                listData = baseDao.rechargeDao().findByTime(beginTime, endTime);
+            } else {
+                listData = baseDao.userCardDao().findByTime(beginTime, endTime);
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -139,10 +139,10 @@
             return;
         }
         if (isRechargeList) {
-            title = new String[]{"鏉戝彿", "鐢ㄦ埛鍚�", "鎴峰彿", "鍏呭�兼棩鏈�", "鍏呭�奸噾棰濓紙鍏冿級", "鍓╀綑閲戦锛堝厓锛�"};
+            title = new String[]{"璁惧搴忓垪鍙�", "鐢ㄦ埛鍚�", "韬唤璇佸彿", "鍏呭�兼棩鏈�", "鍏呭�奸噾棰濓紙鍏冿級", "鍓╀綑閲戦锛堝厓锛�"};
             fileName = file.toString() + "/" + ExcelUtil.outRechargePathName;
         } else {
-            title = new String[]{"鏉戝彿", "鐢ㄦ埛鍚�", "鎴峰彿", "娉ㄥ唽鏃ユ湡", "鐢佃瘽", "姘存潈鍐呮按閲�", "浜╂暟", "鐘舵��"};
+            title = new String[]{"璁惧搴忓垪鍙�", "鐢ㄦ埛鍚�", "韬唤璇佸彿", "娉ㄥ唽鏃ユ湡", "鐢佃瘽"};
             fileName = file.toString() + "/" + ExcelUtil.outUserPathName;
         }
         ExcelUtil.initExcel(fileName, title);
diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
index f7edf95..67a3395 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
@@ -1,5 +1,6 @@
 package com.dayu.recharge.activity;
 
+import android.Manifest;
 import android.app.Dialog;
 import android.app.ProgressDialog;
 import android.content.Intent;
@@ -8,6 +9,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 
+import com.msd.ocr.idcard.LibraryInitOCR;
 import com.dayu.recharge.MyApplication;
 import com.dayu.recharge.card.UserCard;
 import com.dayu.recharge.databinding.ActivityNewCardBinding;
@@ -26,6 +28,10 @@
 import com.dayu.recharge.utils.SocketUtil;
 import com.dayu.recharge.utils.ToastUtil;
 import com.dayu.recharge.utils.WSHelper;
+import com.permissionx.guolindev.PermissionX;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import java.util.Arrays;
 
@@ -37,7 +43,7 @@
  */
 public class NewCardActivity extends BaseNfcActivity {
 
-
+    public static final int SCAN_IDCARD_REQUEST = 1;
     UserCardBean userCardBean;
     Dialog dialog;
 
@@ -54,9 +60,19 @@
         setContentView(newCardBinding.getRoot());
         setData();
         initView();
+        LibraryInitOCR.initOCR(NewCardActivity.this);
     }
 
     private void initView() {
+        //韬唤璇佽瘑鍒�
+        newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                rxPermission();
+            }
+        });
+
         newCardBinding.newCardRegistBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -97,6 +113,67 @@
         });
     }
 
+    private void rxPermission() {
+        PermissionX.init(NewCardActivity.this).permissions(Manifest.permission.CAMERA)
+                .onExplainRequestReason((scope, deniedList) -> {
+
+// val message = "PermissionX闇�瑕佹偍鍚屾剰浠ヤ笅鏉冮檺鎵嶈兘姝e父浣跨敤"
+                })
+                .request((allGranted, grantedList, deniedList) -> {
+                    if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
+                        startCamera();
+                    } else {//鎮ㄦ嫆缁濅簡濡備笅鏉冮檺锛�$deniedList
+
+
+                    }
+                });
+    }
+
+
+    private void startCamera() {
+
+        Bundle bundle = new Bundle();
+        bundle.putBoolean("saveImage", false);
+        bundle.putInt("requestCode", SCAN_IDCARD_REQUEST);
+        bundle.putInt("type", 0); //0韬唤璇�, 1椹鹃┒璇�
+        LibraryInitOCR.startScan(NewCardActivity.this, bundle);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK){
+            switch (requestCode) {
+                case SCAN_IDCARD_REQUEST:
+                    String result = data.getStringExtra("OCRResult");
+                    try {
+                        JSONObject jo = new JSONObject(result);
+
+//                    sb.append(String.format("姝i潰 = %s\n", jo.opt("type")));
+//                    sb.append(String.format("濮撳悕 = %s\n", jo.opt("name")));
+//                    sb.append(String.format("鎬у埆 = %s\n", jo.opt("sex")));
+//                    sb.append(String.format("姘戞棌 = %s\n", jo.opt("folk")));
+//                    sb.append(String.format("鏃ユ湡 = %s\n", jo.opt("birt")));
+//                    sb.append(String.format("鍙风爜 = %s\n", jo.opt("num")));
+//                    sb.append(String.format("浣忓潃 = %s\n", jo.opt("addr")));
+//                    sb.append(String.format("绛惧彂鏈哄叧 = %s\n", jo.opt("issue")));
+//                    sb.append(String.format("鏈夋晥鏈熼檺 = %s\n", jo.opt("valid")));
+//                    sb.append(String.format("鏁翠綋鐓х墖 = %s\n", jo.opt("imgPath")));
+//                    sb.append(String.format("澶村儚璺緞 = %s\n", jo.opt("headPath")));
+
+                        newCardBinding.newCardName.setText(jo.opt("name").toString());
+                        newCardBinding.newCardId.setText(jo.opt("num").toString());
+                        newCardBinding.newCardIdTip.setVisibility(View.VISIBLE);
+
+                    } catch (JSONException e) {
+                        throw new RuntimeException(e);
+                    }
+                    break;
+            }
+        }
+
+    }
+
     private void setData() {
 
         try {
diff --git a/app/src/main/java/com/dayu/recharge/net/SocketNet.java b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
index 1c497a1..b3c4c18 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -132,7 +132,7 @@
 //            isConnected = false;
             Log.i("SocketActionListener", "socket杩炴帴澶辫触");
             if (isTest) {
-                ToastUtil.show(mContext, "杩炴帴澶辫触,璇锋鏌ョ綉缁�");
+//                ToastUtil.show(mContext, "杩炴帴澶辫触,璇锋鏌ョ綉缁�");
             } else {
                 if (myCallBack != null) {
                     myCallBack.onSocketError(-1, "socket杩炴帴澶辫触,璇锋鏌ョ綉缁�");
diff --git a/app/src/main/java/com/dayu/recharge/utils/ExcelUtil.java b/app/src/main/java/com/dayu/recharge/utils/ExcelUtil.java
index e270cca..e508bd9 100644
--- a/app/src/main/java/com/dayu/recharge/utils/ExcelUtil.java
+++ b/app/src/main/java/com/dayu/recharge/utils/ExcelUtil.java
@@ -129,27 +129,19 @@
                     List<String> list = new ArrayList<>();
                     if (objList.get(j) instanceof RechargeBean) {
                         RechargeBean projectBean = (RechargeBean) objList.get(j);
-//                        list.add(projectBean.getVillageNum());
-//                        list.add(projectBean.getUserName());
-//                        list.add(projectBean.getUserNum());
-//                        list.add(DateUtil.dateToStamp(projectBean.getDate(), DateUtil.type2));
-//                        list.add(projectBean.getMorny());
-//                        list.add(projectBean.getBalance());
+                        list.add(projectBean.getSerial());
+                        list.add(projectBean.getUserName());
+                        list.add(projectBean.getUserId());
+                        list.add(DateUtil.dateToStamp(projectBean.getDate(), DateUtil.type2));
+                        list.add(projectBean.getMorny());
+                        list.add(projectBean.getBalance());
                     } else {
-//                        UserCardBean userCardBean = (UserCardBean) objList.get(j);
-//                        list.add(userCardBean.getVillageNum());
-//                        list.add(userCardBean.getUserName());
-//                        list.add(userCardBean.getUserNum());
-//                        list.add(DateUtil.dateToStamp(userCardBean.getDate(), DateUtil.type2));
-//                        list.add(userCardBean.getPhone());
-//                        list.add(userCardBean.getWaterNum());
-//                        list.add(userCardBean.getMushu());
-//                        if (userCardBean.getSt() == 0) {
-//                            list.add("绌洪棽");
-//                        } else {
-//                            list.add("浣跨敤");
-//                        }
-
+                        UserCardBean userCardBean = (UserCardBean) objList.get(j);
+                        list.add(userCardBean.getSerial());
+                        list.add(userCardBean.getUserName());
+                        list.add(userCardBean.getUserID());
+                        list.add(DateUtil.dateToStamp(userCardBean.getDate(), DateUtil.type2));
+                        list.add(userCardBean.getPhone());
                     }
 
                     for (int i = 0; i < list.size(); i++) {
diff --git a/app/src/main/res/layout/activity_new_card.xml b/app/src/main/res/layout/activity_new_card.xml
index 99120f5..de64059 100644
--- a/app/src/main/res/layout/activity_new_card.xml
+++ b/app/src/main/res/layout/activity_new_card.xml
@@ -47,7 +47,8 @@
             <LinearLayout
                 style="@style/newCardLL"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content">
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
 
                 <TextView
                     android:layout_width="wrap_content"
@@ -57,13 +58,21 @@
 
                 <EditText
                     android:id="@+id/newCard_name"
-                    android:layout_width="match_parent"
+                    android:layout_width="0dp"
                     android:layout_height="wrap_content"
-
+                    android:layout_weight="1"
                     android:textSize="@dimen/new_card_size" />
 
+                <ImageView
+                    android:id="@+id/newCard_scanBtn"
+                    android:layout_width="45dp"
+                    android:layout_height="45dp"
+                    android:visibility="gone"
+                    android:padding="10dp"
+                    android:src="@mipmap/icon_scan" />
 
             </LinearLayout>
+
             <LinearLayout
                 style="@style/newCardLL"
                 android:layout_width="match_parent"
@@ -79,21 +88,29 @@
                     android:id="@+id/newCard_id"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:inputType="numberSigned"
                     android:digits="0123456789Xx"
-
-                     android:maxLength="18"
+                    android:inputType="numberSigned"
+                    android:maxLength="18"
                     android:textSize="@dimen/new_card_size" />
 
 
             </LinearLayout>
 
+            <TextView
+                android:id="@+id/newCard_idTip"
+                style="@style/newCardLL"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="鎵弿鍚庤鏍稿韬唤淇℃伅鏃犺"
+                android:textColor="#FF4500"
+                android:visibility="gone" />
+
 
             <LinearLayout
                 style="@style/newCardLL"
-                android:visibility="gone"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content">
+                android:layout_height="wrap_content"
+                android:visibility="gone">
 
                 <TextView
                     android:layout_width="wrap_content"
@@ -130,10 +147,7 @@
                     android:layout_height="wrap_content"
                     android:inputType="number"
                     android:maxLength="11"
-
                     android:textSize="@dimen/new_card_size" />
-
-
             </LinearLayout>
 
 
diff --git a/app/src/main/res/layout/activity_test.xml b/app/src/main/res/layout/activity_test.xml
new file mode 100644
index 0000000..ab7ceba
--- /dev/null
+++ b/app/src/main/res/layout/activity_test.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+
+    <TextView
+        android:id="@+id/testBtn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="娴嬭瘯" />
+
+    <ImageView
+        android:id="@+id/img"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:visibility="gone"
+        android:scaleType="fitCenter" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-xhdpi/icon_scan.png b/app/src/main/res/mipmap-xhdpi/icon_scan.png
new file mode 100644
index 0000000..be8820e
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_scan.png
Binary files differ
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 666b988..c10f817 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,7 +1,7 @@
 <resources>
 
     <!-- Base application theme. -->
-    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
         <!-- Customize your theme here. -->
         <item name="colorPrimary">@color/colorPrimary</item>
         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
diff --git a/gradle.properties b/gradle.properties
index 3e927b1..65220be 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,21 +1,17 @@
-# Project-wide Gradle settings.
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-# For more details on how to configure your build environment visit
+## For more details on how to configure your build environment visit
 # http://www.gradle.org/docs/current/userguide/build_environment.html
+#
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# Default value: -Xmx1024m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+#
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
-# AndroidX package structure to make it clearer which packages are bundled with the
-# Android operating system, and which are packaged with your app's APK
-# https://developer.android.com/topic/libraries/support-library/androidx-rn
+#Thu Nov 16 14:03:50 CST 2023
+android.enableJetifier=true
+android.nonTransitiveRClass=true
 android.useAndroidX=true
-# Enables namespacing of each library's R class so that its R class includes only the
-# resources declared in the library itself and none from the library's dependencies,
-# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding\=UTF-8

--
Gitblit v1.8.0