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