From 76407ef42394ff1046c508a106c0b51812df2a0f Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 10 十二月 2025 18:12:53 +0800
Subject: [PATCH] 钥匙柜开门添加 指纹方式
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ZWListActivity.java | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 150 insertions(+), 0 deletions(-)
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ZWListActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ZWListActivity.java
new file mode 100644
index 0000000..2219028
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ZWListActivity.java
@@ -0,0 +1,150 @@
+package com.doumee.keyCabinet.ui.keyCabinet;
+
+import androidx.annotation.Nullable;
+import android.os.Bundle;
+import android.os.SystemClock;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Toast;
+
+import com.doumee.keyCabinet.R;
+import com.doumee.keyCabinet.base.MyBaseActivity;
+import com.doumee.keyCabinet.bean.FingerPrintVo;
+import com.doumee.keyCabinet.dao.DaoManager;
+import com.doumee.keyCabinet.dao.FingerPrintDo;
+import com.doumee.keyCabinet.databinding.ZwlistActivityBinding;
+import com.doumee.keyCabinet.event.HttpEvent;
+import com.doumee.keyCabinet.event.RefreshFingerEvent;
+import com.doumee.keyCabinet.ui.keyCabinet.adapter.ZwListRcvAdapter;
+import com.doumee.keyCabinet.utils.usb.DevComm;
+import com.doumee.keyCabinet.utils.usb.IUsbConnState;
+import com.doumee.lib_coremodel.bean.event.ActionEventData;
+import com.doumee.lib_coremodel.util.RecyclerHelp;
+import com.example.datalibrary.api.FaceApi;
+import com.example.datalibrary.model.User;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import dagger.hilt.android.AndroidEntryPoint;
+
+@AndroidEntryPoint
+public class ZWListActivity extends MyBaseActivity<ZWListVM, ZwlistActivityBinding> {
+ private ZwListRcvAdapter adapter;
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.zwlist_activity;
+ }
+
+ @Override
+ public void initView(@Nullable Bundle savedInstanceState) {
+ isAddCountTimer = false;
+ normalConfig();
+ getDB().setModel(getVM());
+ adapter = new ZwListRcvAdapter(this, R.layout.zwlist_rcv_item);
+ RecyclerHelp.bindVL(this,getDB().recyclerView,30,false);
+ getDB().recyclerView.setAdapter(adapter);
+ }
+
+ @Override
+ public void initData(@Nullable Bundle savedInstanceState) {
+ getDatas();
+ }
+
+ private void getDatas(){
+ List<User> users = FaceApi.getInstance().getAllUserList();
+ List<FingerPrintDo> printDos = DaoManager.getFingerPrintDao().loadAll();
+ HashMap<String,User> mMap = new HashMap<>();
+ if(users!=null&&users.size()>0) {
+ for(User u:users){
+ mMap.put(u.getUserId(),u);
+ }
+ }
+ LinkedHashMap<String,FingerPrintVo> pMap = new LinkedHashMap<>();
+ List<FingerPrintDo> updateList = new ArrayList<>();
+ for(FingerPrintDo d:printDos){
+ FingerPrintVo vo = null;
+ if(pMap.containsKey(d.getMemberId()+"")){
+ vo = pMap.get(d.getMemberId()+"");
+ }else {
+ vo = new FingerPrintVo();
+ pMap.put(d.getMemberId()+"",vo);
+ }
+ vo.setMemberName(d.getMemberName());
+ vo.setMemberId(d.getMemberId());
+ vo.setFace(d.getFace());
+ vo.setGroupId(d.getGroupId());
+ vo.setCount(vo.getCount()+1);
+ if(mMap.containsKey(d.getMemberId()+"")){
+ //鏇存柊淇℃伅
+ User user = mMap.get(d.getMemberId()+"");
+ d.setFace(user.getImageName());
+ d.setMemberName(user.getUserName());
+ updateList.add(d);
+ }
+ }
+ HashMap<String,Integer> numMap = new HashMap<>();
+ for(String key:pMap.keySet()){
+ numMap.put(key,pMap.get(key).getCount());
+ }
+ List<FingerPrintVo> vos = new ArrayList<>();
+ if(users!=null&&users.size()>0) {
+ for(User u:users){
+ FingerPrintVo vo = new FingerPrintVo();
+ vo.setMemberId(Integer.parseInt(u.getUserId()));
+ vo.setMemberName(u.getUserName());
+ vo.setFace(u.getImageName());
+ vo.setGroupId(u.getGroupId());
+ if(numMap.containsKey(u.getUserId())){
+ vo.setCount(numMap.get(u.getUserId()));
+ pMap.remove(u.getUserId());
+ }
+ vos.add(vo);
+ }
+ }
+ if(pMap.size()>0){
+ for(String key:pMap.keySet()){
+ vos.add(pMap.get(key));
+ }
+ }
+ if(vos.size()>0) {
+ adapter.refreshData(vos);
+ getVM().emptyVisibility.set(View.GONE);
+ }else {
+ getVM().emptyVisibility.set(View.VISIBLE);
+ }
+ if(updateList.size()>0){
+ DaoManager.getFingerPrintDao().update(updateList.toArray(new FingerPrintDo[updateList.size()]));
+ }
+ }
+
+ @Override
+ protected void doRegister(int type, ActionEventData data) {
+ switch (type){
+ default:
+ break;
+ }
+ }
+
+ @Subscribe
+ public void RefreshFingerEvent(RefreshFingerEvent e){
+ if(!isFinishing()){
+ getDatas();
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.9.3