From ffba2c405154eb6de9be00d9b5632e8a33ffc366 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 30 十月 2025 18:09:26 +0800
Subject: [PATCH] 改bug

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java |  127 +++++++++++++++++++++++++++++++++---------
 1 files changed, 99 insertions(+), 28 deletions(-)

diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
index f982e43..a38a64b 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java
@@ -20,18 +20,23 @@
 import com.doumee.keyCabinet.dao.CabinetGridDo;
 import com.doumee.keyCabinet.dao.DaoManager;
 import com.doumee.keyCabinet.databinding.ManageCabinetActivityBinding;
+import com.doumee.keyCabinet.event.CheckGridStatusEvent;
 import com.doumee.keyCabinet.event.CloseGridOneResultEvent;
+import com.doumee.keyCabinet.event.GetKeyStatusEvent;
 import com.doumee.keyCabinet.event.HttpEvent;
+import com.doumee.keyCabinet.event.KeyResultEvent;
 import com.doumee.keyCabinet.event.ManageOpenGridResultEvent;
 import com.doumee.keyCabinet.event.OpenAllGridEvent;
 import com.doumee.keyCabinet.event.OpenGridEvent;
 import com.doumee.keyCabinet.event.OpenGridListEvent;
+import com.doumee.keyCabinet.event.OpenGridOneResultEvent;
 import com.doumee.keyCabinet.event.TimeClockEvent;
 import com.doumee.keyCabinet.ui.keyCabinet.adapter.ManageCabinetRcvAdapter;
 import com.doumee.keyCabinet.utils.i485.SportUtils;
 import com.doumee.lib_coremodel.bean.event.ActionEventData;
 import com.doumee.lib_coremodel.util.RecyclerHelp;
 import com.doumee.lib_coremodel.util.StringUtil;
+import com.example.datalibrary.db.DBManager;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
@@ -105,6 +110,7 @@
         for(ManageKeyCabinetBean d:datas){
             if(d.getIsSelected().get()){
                 isCanPL = true;
+                isCanBJ = true;
                 if(keyStatus==-1){
                     keyStatus = getGridStatus(d);
                 }else {
@@ -120,8 +126,7 @@
         }else {
             getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_faile);
         }
-        if(keyStatus==2||keyStatus==4){
-            isCanBJ = true;
+        if(isCanBJ){
             getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_ok);
         }else {
             getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_faile);
@@ -142,7 +147,6 @@
         for(CabinetGridDo d:gridDos){
             oldMap.put(d.getGridKey(),d);
         }
-        List<CabinetGridDo> addList = new ArrayList<>();
         List<CabinetGridDo> updateList = new ArrayList<>();
         for(ManageKeyCabinetBean bean:beans){
             String key = SportUtils.intToHex(Integer.parseInt(bean.getBoardCode()))+SportUtils.intToHex(Integer.parseInt(bean.getChannelCode()));
@@ -158,29 +162,19 @@
                 gridDo.setKeyStatus(bean.getKeyStatus());
                 gridDo.setWorkingStatus(bean.getWorkingStatus());
                 updateList.add(gridDo);
-            }else {
-                //鏂板
-                CabinetGridDo gridDo = new CabinetGridDo();
-                gridDo.setGridId(bean.getId());
-                gridDo.setCabinetName(bean.getCode());
-                gridDo.setGridKey(key);
-                gridDo.setKeyCode(bean.getKeyCode());
-                gridDo.setBindStatus(bean.getBindStatus());
-                gridDo.setGridStatus(bean.getStatus());
-                gridDo.setKeyStatus(bean.getKeyStatus());
-                gridDo.setWorkingStatus(bean.getWorkingStatus());
-                gridDo.setUpdateTime(StringUtil.DateToStr(new Date()));
-                addList.add(gridDo);
             }
-        }
-        if(addList.size()>0){
-            DaoManager.getCabinetGridDao().insert(addList);
         }
         if(updateList.size()>0){
             CabinetGridDo[] upList = new CabinetGridDo[updateList.size()];
             for(int i=0;i<updateList.size();i++){
                 upList[i] = updateList.get(i);
             }
+            //todo 鍘绘帀
+            CabinetGridDo gridDo = oldMap.get("0101");
+            if(gridDo!=null){
+                EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"=================>鏇存柊鏁版嵁褰撳墠閽ュ寵2锛�"+gridDo.getCurKeyCode()));
+            }
+
             DaoManager.getCabinetGridDao().update(upList);
         }
     }
@@ -240,6 +234,7 @@
                             SportUtils.intToHex(Integer.parseInt(bean.getChannelCode()));
                     waitOpenMap.put(key,bean.getCode());
                 }
+                waitResultCount = 2;
                 EventBus.getDefault().post(new OpenAllGridEvent());
                 }break;
             case 10: {
@@ -255,11 +250,12 @@
                         keys.add(key);
                     }
                 }
+                waitResultCount = keys.size();
                 EventBus.getDefault().post(new OpenGridListEvent(keys));
                 }break;
             case 4: {
                 //鏍囪
-                if(!isCanPL){
+                if(!isCanBJ){
                     return;
                 }
                 bjIds.clear();
@@ -285,7 +281,12 @@
                     getDB().tvBjgz.setText("鏍囪涓烘晠闅�");
                     getDB().tvBjgz.setTextColor(0xffFF3600);
                     getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_1_bg);
-                    getDB().tvBy.setVisibility(View.VISIBLE);
+                    if(keyStatus==2) {
+                        //0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭 3缁翠慨淇濆吇
+                        getDB().tvBy.setVisibility(View.VISIBLE);
+                    }else {
+                        getDB().tvBy.setVisibility(View.GONE);
+                    }
                 }
                 getDB().clCz.setVisibility(View.VISIBLE);
                 }break;
@@ -336,7 +337,6 @@
             if(tipDownCount==0){
                 isShowTip = false;
                 getDB().clTip.setVisibility(View.GONE);
-                finish();
             }else {
                 tipDownCount--;
                 getDB().tvDjs.setText(tipDownCount+"s");
@@ -404,10 +404,10 @@
         return styledText;
     }
 
-    private void showKeyErrTip(CabinetGridDo gridDo){
+    private void showKeyErrTip(String name){
         getDB().imgClKm1.setImageResource(R.mipmap.ic_jjfail);
         getDB().tvClKm1.setText("璇嗗埆澶辫触");
-        getDB().tvClKm2.setText(getTipText2("閽ュ寵鏌�",gridDo.getCabinetName(),"璇嗗埆澶辫触"), TextView.BufferType.SPANNABLE);
+        getDB().tvClKm2.setText(getTipText2("閽ュ寵鏌�",name,"璇嗗埆澶辫触"), TextView.BufferType.SPANNABLE);
         getDB().tvClKmClose.setText("閲嶆柊瀛樻斁");
         getDB().tvClKmClose.setTextColor(0xffffffff);
         getDB().tvClKmClose.setBackgroundResource(R.drawable.shape_mb_bt_ok);
@@ -425,6 +425,7 @@
         return super.onKeyDown(keyCode, event);
     }
 
+    private int waitResultCount = 0;
     /**
      * 寮�闂ㄨ繑鍥�
      * @param e
@@ -432,6 +433,13 @@
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void ManageOpenGridResultEvent(ManageOpenGridResultEvent e){
         if(!isFinishing()){
+            if(waitResultCount>0){
+                waitResultCount--;
+            }
+            if(waitResultCount>0){
+                return;
+            }
+            EventBus.getDefault().post(new CheckGridStatusEvent());
             //鏍¢獙鏄惁宸插叏寮�
             List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll();
             List<String> msgList = new ArrayList<>();
@@ -518,6 +526,22 @@
         }
     }
 
+    private String sygKey;
+    @Subscribe
+    public void OpenGridOneResultEvent(OpenGridOneResultEvent e){
+        if(!isFinishing()){
+            if(e.getIsOpen()==0){
+                if(e.getKey().equals(sygKey)){
+                    return;
+                }
+                sygKey = e.getKey();
+                //寮�闂ㄥけ璐�,閲嶆柊寮�闂�
+                EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
+                        Integer.parseInt(e.getKey().substring(0,2), 16)+""));
+            }
+        }
+    }
+
     /**
      * 鍏抽棬
      * @param e
@@ -525,14 +549,19 @@
     @Subscribe(threadMode= ThreadMode.MAIN)
     public void CloseGridOneResultEvent(CloseGridOneResultEvent e){
         if(!isFinishing()){
+            //鑾峰彇鍗″彿
+            EventBus.getDefault().post(new GetKeyStatusEvent());
+            if(isShowTip){
+                isShowTip = false;
+                getDB().clTip.setVisibility(View.GONE); 
+            }
             //鏍¢獙鍗″彿
             CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(e.getKey());
             if(gridDo!=null){
-                //鏍¢獙閽ュ寵鏄惁鍖归厤
-                if(gridDo.getGridKey()==null){
+                if(TextUtils.isEmpty(gridDo.getGridKey())){
                     if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
                         //鏈粦瀹氱殑瀛樻斁浜嗛挜鍖�
-                        showKeyErrTip(gridDo);
+                        showKeyErrTip(gridDo.getCabinetName()+"-"+gridDo.getCurKeyCode());
                         //寮�闂�
                         EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
                                 Integer.parseInt(e.getKey().substring(0,2), 16)+""));
@@ -542,7 +571,8 @@
                     if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
                         if(!gridDo.getCurKeyCode().equals(gridDo.getKeyCode())){
                             //閽ュ寵涓嶅尮閰�
-                            showKeyErrTip(gridDo);
+                            showKeyErrTip(gridDo.getCabinetName()+"-"+gridDo.getCurKeyCode());
+                            EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"閽ュ寵涓嶅尮閰�==>鐩爣锛�"+gridDo.getKeyCode()+",褰撳墠锛�"+gridDo.getCurKeyCode()));
                             //寮�闂�
                             EventBus.getDefault().post(new OpenGridEvent(Integer.parseInt(e.getKey().substring(2,4), 16)+"",
                                     Integer.parseInt(e.getKey().substring(0,2), 16)+""));
@@ -550,8 +580,49 @@
                         }
                     }
                 }
+                EventBus.getDefault().post(new HttpEvent(StringUtil.DateToStrSS(new Date())+"闂ㄥ叧闂垚鍔�==>鐩爣锛�"+gridDo.getKeyCode()+",褰撳墠锛�"+gridDo.getCurKeyCode()));
                 getVM().closeGrid(gridDo);
             }
         }
     }
+
+    @Subscribe
+    public void KeyResultEvent(KeyResultEvent e){
+        if(!isFinishing()){
+            //鏍¢獙鍗″彿涓嶅鐨勶紝鐩存帴寮瑰嚭
+            List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll();
+            List<String> keys = new ArrayList<>();
+            StringBuilder sb = new StringBuilder();
+            for(CabinetGridDo gridDo:gridDos){
+                if(TextUtils.isEmpty(gridDo.getGridKey())){
+                    if(!TextUtils.isEmpty(gridDo.getCurKeyCode())&&gridDo.getIsOpen()==0){
+                        //鏈粦瀹氱殑瀛樻斁浜嗛挜鍖�
+                        keys.add(gridDo.getGridKey());
+                        if(sb.length()>0){
+                            sb.append("銆�");
+                        }
+                        sb.append(gridDo.getCabinetName());
+                    }
+                }else {
+                    if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
+                        if(!gridDo.getCurKeyCode().equals(gridDo.getKeyCode())&&gridDo.getIsOpen()==0){
+                            //閽ュ寵涓嶅尮閰�
+                            keys.add(gridDo.getGridKey());
+                            if(sb.length()>0){
+                                sb.append("銆�");
+                            }
+                            sb.append(gridDo.getCabinetName());
+                        }
+                    }
+                }
+            }
+            if(sb.length()>0){
+                showKeyErrTip(sb.toString());
+            }
+            if(keys.size()>0){
+                //寮�闂�
+                EventBus.getDefault().post(new OpenGridListEvent(keys));
+            }
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3