From 0cc81c61f36d0072b6252737e3d106ba0d4518a3 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 31 十月 2025 10:10:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/ManageCabinetActivity.java | 253 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 207 insertions(+), 46 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 ef9eb5a..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,16 +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;
@@ -45,9 +52,12 @@
@AndroidEntryPoint
public class ManageCabinetActivity extends MyBaseActivity<ManageCabinetVM, ManageCabinetActivityBinding> {
private ManageCabinetRcvAdapter adapter;
- //1寰呭叏寮�锛�2寰呮壒閲忓紑
- private int status;
- private boolean isCanCZ = false;
+
+ //鏄惁鍙壒閲忔搷浣�
+ private boolean isCanPL = false;
+ //鍙爣璁帮細鍏ㄥ�熷嚭銆佸叏鏁呴殰
+ private boolean isCanBJ = false;
+ private int keyStatus = -1;
@Override
public int getLayoutId() {
@@ -64,21 +74,7 @@
adapter = new ManageCabinetRcvAdapter(this, R.layout.manage_cabinet_rcv_item, new ManageCabinetRcvAdapter.OnItemClick() {
@Override
public void onItemClick(ManageKeyCabinetBean item) {
- List<ManageKeyCabinetBean> datas = adapter.getListData();
- isCanCZ = false;
- for(ManageKeyCabinetBean d:datas){
- if(d.getIsSelected().get()){
- isCanCZ = true;
- break;
- }
- }
- if(isCanCZ){
- getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_ok);
- getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_ok);
- }else {
- getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_faile);
- getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_faile);
- }
+ updateBtnStatus();
}
});
RecyclerHelp.bindVG(this,getDB().rcvKm,3,30);
@@ -90,6 +86,9 @@
getVM().getDatasLD().observe(this, new Observer<List<ManageKeyCabinetBean>>() {
@Override
public void onChanged(List<ManageKeyCabinetBean> gridInfoBeans) {
+ if(getDB().clCz.getVisibility()==View.VISIBLE){
+ getDB().clCz.setVisibility(View.GONE);
+ }
if(gridInfoBeans.size()>0){
adapter.refreshData(gridInfoBeans);
getVM().emptyVisibility.set(View.GONE);
@@ -103,13 +102,51 @@
getVM().getCabinetDetail();
}
+ private void updateBtnStatus(){
+ List<ManageKeyCabinetBean> datas = adapter.getListData();
+ isCanPL = false;
+ isCanBJ = false;
+ keyStatus = -1;
+ for(ManageKeyCabinetBean d:datas){
+ if(d.getIsSelected().get()){
+ isCanPL = true;
+ isCanBJ = true;
+ if(keyStatus==-1){
+ keyStatus = getGridStatus(d);
+ }else {
+ if(keyStatus!=getGridStatus(d)){
+ //涓嶅悓
+ keyStatus = -2;
+ }
+ }
+ }
+ }
+ if(isCanPL){
+ getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_ok);
+ }else {
+ getDB().tvPlOpen.setBackgroundResource(R.drawable.shape_mb_bt_faile);
+ }
+ if(isCanBJ){
+ getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_ok);
+ }else {
+ getDB().tvBj.setBackgroundResource(R.drawable.shape_mb_bt_faile);
+ }
+ }
+
+ private int getGridStatus(ManageKeyCabinetBean grid){
+ if(grid.getWorkingStatus()==1){
+ return 4;
+ }else {
+ return grid.getKeyStatus();
+ }
+ }
+
private void updateDao(List<ManageKeyCabinetBean> beans){
List<CabinetGridDo> gridDos = DaoManager.getCabinetGridDao().loadAll();
HashMap<String,CabinetGridDo> oldMap = new HashMap<>();
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()));
@@ -125,35 +162,24 @@
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);
}
}
private List<Integer> bjIds = new ArrayList<>();
- private boolean isGz = true;
private boolean isAllOpen = false;
@Override
protected void doRegister(int type, ActionEventData data) {
@@ -168,7 +194,6 @@
case 2:
{
//鍏ㄥ紑
- status = 1;
//鎵归噺寮�闂紝鏍¢獙鏄惁鍙墦寮�
List<Integer> ids = new ArrayList<>();
List<ManageKeyCabinetBean> datas = adapter.getListData();
@@ -183,7 +208,7 @@
}
break;
case 3: {
- if(!isCanCZ){
+ if(!isCanPL){
return;
}
//鎵归噺寮�闂紝鏍¢獙鏄惁鍙墦寮�
@@ -209,6 +234,7 @@
SportUtils.intToHex(Integer.parseInt(bean.getChannelCode()));
waitOpenMap.put(key,bean.getCode());
}
+ waitResultCount = 2;
EventBus.getDefault().post(new OpenAllGridEvent());
}break;
case 10: {
@@ -224,38 +250,43 @@
keys.add(key);
}
}
+ waitResultCount = keys.size();
EventBus.getDefault().post(new OpenGridListEvent(keys));
}break;
case 4: {
//鏍囪
- if(!isCanCZ){
+ if(!isCanBJ){
return;
}
bjIds.clear();
- isGz = true;
+
List<ManageKeyCabinetBean> datas = adapter.getListData();
for (ManageKeyCabinetBean bean : datas) {
if (bean.getIsSelected().get()) {
bjIds.add(bean.getId());
- if(bean.getWorkingStatus()==0){
- isGz = false;
- }
}
}
if (bjIds.size() == 0) {
Toast.makeText(mContext, "璇烽�夋嫨鏌滄牸", Toast.LENGTH_SHORT).show();
return;
}
- if(isGz){
+ if(keyStatus==4){
//鍏ㄤ负鏁呴殰
getDB().tvBjgz.setText("鏍囪涓烘甯�");
getDB().tvBjgz.setTextColor(0xff279BAA);
getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_2_bg);
+ getDB().tvBy.setVisibility(View.GONE);
}else {
//鏍囪鏁呴殰
getDB().tvBjgz.setText("鏍囪涓烘晠闅�");
getDB().tvBjgz.setTextColor(0xffFF3600);
getDB().tvBjgz.setBackgroundResource(R.drawable.shape_mb_cz_1_bg);
+ if(keyStatus==2) {
+ //0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭 3缁翠慨淇濆吇
+ getDB().tvBy.setVisibility(View.VISIBLE);
+ }else {
+ getDB().tvBy.setVisibility(View.GONE);
+ }
}
getDB().clCz.setVisibility(View.VISIBLE);
}break;
@@ -267,7 +298,7 @@
getVM().markRepair(bjIds);
break;
case 7:
- if(isGz) {
+ if(keyStatus==4) {
//姝e父
getVM().cancelFault(bjIds);
}else {
@@ -276,6 +307,7 @@
}
break;
case 9: {
+ updateBtnStatus();
if(isShowOpenTip==true) {
//娓呯┖寮�闂ㄦ彁閱�
isShowOpenTip = false;
@@ -284,6 +316,9 @@
getDB().clKmTip.setVisibility(View.GONE);
}
}break;
+ case 11:
+ updateBtnStatus();
+ break;
default:
break;
}
@@ -302,7 +337,6 @@
if(tipDownCount==0){
isShowTip = false;
getDB().clTip.setVisibility(View.GONE);
- finish();
}else {
tipDownCount--;
getDB().tvDjs.setText(tipDownCount+"s");
@@ -370,6 +404,17 @@
return styledText;
}
+ private void showKeyErrTip(String name){
+ getDB().imgClKm1.setImageResource(R.mipmap.ic_jjfail);
+ getDB().tvClKm1.setText("璇嗗埆澶辫触");
+ getDB().tvClKm2.setText(getTipText2("閽ュ寵鏌�",name,"璇嗗埆澶辫触"), TextView.BufferType.SPANNABLE);
+ getDB().tvClKmClose.setText("閲嶆柊瀛樻斁");
+ getDB().tvClKmClose.setTextColor(0xffffffff);
+ getDB().tvClKmClose.setBackgroundResource(R.drawable.shape_mb_bt_ok);
+ isShowOpenTip = false;
+ getDB().clKmTip.setVisibility(View.VISIBLE);
+ }
+
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
@@ -380,9 +425,21 @@
return super.onKeyDown(keyCode, event);
}
+ private int waitResultCount = 0;
+ /**
+ * 寮�闂ㄨ繑鍥�
+ * @param e
+ */
@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<>();
@@ -397,6 +454,10 @@
}
}
if(waitOpenMap.size()==0){
+ if(getDB().clKmTip.getVisibility()==View.VISIBLE){
+ //宸插脊鍑哄氨涓嶆彁绀轰簡
+ return;
+ }
EventBus.getDefault().post(new HttpEvent("鍏ㄩ儴鎵撳紑浜�:"+waitOpenMap.size()));
//鎵撳紑鎴愬姛
if(isAllOpen){
@@ -464,4 +525,104 @@
waitOpenMap.clear();
}
}
+
+ 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
+ */
+ @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(TextUtils.isEmpty(gridDo.getGridKey())){
+ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
+ //鏈粦瀹氱殑瀛樻斁浜嗛挜鍖�
+ 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)+""));
+ return;
+ }
+ }else {
+ if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
+ if(!gridDo.getCurKeyCode().equals(gridDo.getKeyCode())){
+ //閽ュ寵涓嶅尮閰�
+ 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)+""));
+ return;
+ }
+ }
+ }
+ 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