MrShi
10 小时以前 ffba2c405154eb6de9be00d9b5632e8a33ffc366
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/keyCabinet/KeyCabinetActivity.java
@@ -26,12 +26,15 @@
import com.doumee.keyCabinet.event.KeyResultEvent;
import com.doumee.keyCabinet.event.GetKeyStatusEvent;
import com.doumee.keyCabinet.event.OpenGridEvent;
import com.doumee.keyCabinet.event.OpenGridListEvent;
import com.doumee.keyCabinet.event.OpenGridOneResultEvent;
import com.doumee.keyCabinet.ui.keyCabinet.adapter.CabinetRcvAdapter;
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.doumee.lib_coremodel.view.ToastView;
import com.example.datalibrary.utils.ToastUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -55,32 +58,6 @@
    private int status;
    private int ysDownCount = 10;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            switch (msg.what){
                case 0:
                    /*if (ysDownCount==4) {
                        //领取钥匙倒计时
                        doRegister(7,null);
                        ysDownCount--;
                        handler.sendEmptyMessageDelayed(0,1000);
                    }else if (ysDownCount==0) {
                        //领取钥匙倒计时
                        //doRegister(MApplication.nextBoolean()?5:6,null);
                    }else {
                        ysDownCount--;
                        handler.sendEmptyMessageDelayed(0,1000);
                    }*/
                    break;
                case 1:
                    break;
                default:
                    break;
            }
        }
    };
    @Override
    public int getLayoutId() {
@@ -132,7 +109,6 @@
        for(CabinetGridDo d:gridDos){
            oldMap.put(d.getGridKey(),d);
        }
        List<CabinetGridDo> addList = new ArrayList<>();
        List<CabinetGridDo> updateList = new ArrayList<>();
        for(KeyCabinetBean bean:beans){
            String key = SportUtils.intToHex(Integer.parseInt(bean.getBoardCode()))+SportUtils.intToHex(Integer.parseInt(bean.getChannelCode()));
@@ -148,23 +124,7 @@
                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()];
@@ -203,6 +163,7 @@
                getDB().clTip1.setVisibility(View.GONE);
                if(status==0) {
                    //重新开门
                    openTime = StringUtil.DateToStr(new Date());
                    EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                }
                downTime = 60;
@@ -234,7 +195,6 @@
                getDB().clTip2.setVisibility(View.VISIBLE);
                EventBus.getDefault().post(new GetKeyStatusEvent());
                ysDownCount = 8;
                handler.sendEmptyMessageDelayed(0,1000);
                break;
            case 7:
                //提醒关柜门
@@ -312,7 +272,7 @@
    }
    private SpannableString getErrPhoneText(){
        String phone = "15899098765";
        String phone = MApplication.getConfigBean().getLinkPhone();
        String text = "如有问题请联系管理员"+phone;
        SpannableString styledText = new SpannableString(text);
        styledText.setSpan(new TextAppearanceSpan(this, R.style.style_tip2), 0, text.length()-phone.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
@@ -328,39 +288,9 @@
        }
    }
    @Subscribe(threadMode= ThreadMode.MAIN)
    public void KeyResultEvent(KeyResultEvent e){
        if(!isFinishing()){
            //钥匙变更了
            if(selectBean!=null) {
                String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode()))
                        + SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode()));
                //查询柜格
                CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key);
                if (gridDo != null) {
                    if(flag==0){
                        //取
                        if(TextUtils.isEmpty(gridDo.getKeyCode())){
                            //空了
                            doRegister(7,null);
                        }
                    }else {
                        //还
                        if(!TextUtils.isEmpty(gridDo.getKeyCode())){
                            //有钥匙了
                            doRegister(7,null);
                        }
                    }
                }
            }
        }
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        handler.removeCallbacksAndMessages(null);
        handler = null;
    }
    private String openTime = "";
@@ -377,7 +307,6 @@
                            return;
                        }
                        isOpened = true;
                        openTime = StringUtil.DateToStr(new Date());
                        Toast.makeText(mContext, "操作4", Toast.LENGTH_LONG).show();
                        doRegister(4, null);
                    } else {
@@ -408,6 +337,8 @@
    @Subscribe(threadMode= ThreadMode.MAIN)
    public void CloseGridOneResultEvent(CloseGridOneResultEvent e){
        if(!isFinishing()){
            //获取卡号
            EventBus.getDefault().post(new GetKeyStatusEvent());
            if(selectBean!=null){
                String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode()))
                        +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode()));
@@ -434,7 +365,7 @@
                                        getVM().closeGrid(gridDo);
                                    }else {
                                        //钥匙不匹配
                                        Toast.makeText(mContext, "操作10", Toast.LENGTH_LONG).show();
                                        //Toast.makeText(mContext, "操作10", Toast.LENGTH_LONG).show();
                                        doRegister(10,null);
                                        EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                    }
@@ -444,11 +375,8 @@
                                    doRegister(5, null);
                                    getVM().closeGrid(gridDo);
                                }
                                if (handler.hasMessages(0)) {
                                    handler.removeMessages(0);
                                }
                            }else {
                                Toast.makeText(mContext, "未查询到", Toast.LENGTH_LONG).show();
                                ToastView.show(MApplication.mContext, "未查询到规格信息");
                            }
                        } else {
                            //关门失败
@@ -484,7 +412,7 @@
                                    getVM().closeGrid(gridDo);
                                }
                            }else {
                                Toast.makeText(mContext, "未查询到", Toast.LENGTH_LONG).show();
                                ToastView.show(MApplication.mContext, "未查询到规格信息");
                            }
                        } else {
                            //关门失败
@@ -494,4 +422,83 @@
            }
        }
    }
    @Subscribe(threadMode= ThreadMode.MAIN)
    public void KeyResultEvent(KeyResultEvent e){
        if(!isFinishing()){
            if(selectBean!=null){
                String key = SportUtils.intToHex(Integer.parseInt(selectBean.getBoardCode()))
                        +SportUtils.intToHex(Integer.parseInt(selectBean.getChannelCode()));
                if(flag==0) {
                    //领取
                    //查询钥匙号
                    CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key);
                    if (gridDo != null) {
                        if (gridDo.getIsOpen() == 0) {
                            //关门成功
                            if (!TextUtils.isEmpty(gridDo.getCurKeyCode())) {
                                if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                    //领取失败
                                    isOpened = false;
                                    doRegister(6, null);
                                    getVM().closeGrid(gridDo);
                                }else {
                                    //钥匙不匹配
                                    //Toast.makeText(mContext, "操作10", Toast.LENGTH_LONG).show();
                                    doRegister(10,null);
                                    EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                }
                            } else {
                                //钥匙拿走了
                                isOpened = false;
                                doRegister(5, null);
                                getVM().closeGrid(gridDo);
                            }
                        }else {
                            //没关门
                            if(TextUtils.isEmpty(gridDo.getCurKeyCode())){
                                //空了
                                doRegister(7,null);
                            }
                        }
                    }else {
                        ToastView.show(MApplication.mContext, "未查询到规格信息");
                    }
                }else {
                    //归还
                    CabinetGridDo gridDo = DaoManager.getCabinetGridDao().getGridByKey(key);
                    if (gridDo != null) {
                        if (gridDo.getIsOpen() == 0) {
                            //关门成功
                            if (!TextUtils.isEmpty(gridDo.getCurKeyCode())) {
                                if (gridDo.getCurKeyCode().equals(selectBean.getKeyCode())) {
                                    //相同归还成功
                                    isOpened = false;
                                    doRegister(8, null);
                                    getVM().closeGrid(gridDo);
                                }else {
                                    //钥匙不匹配
                                    doRegister(10,null);
                                    EventBus.getDefault().post(new OpenGridEvent(selectBean.getChannelCode(), selectBean.getBoardCode()));
                                }
                            } else {
                                //钥匙未归还
                                isOpened = false;
                                doRegister(9, null);
                                getVM().closeGrid(gridDo);
                            }
                        }else {
                            //没关门
                            if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){
                                //有钥匙了
                                doRegister(7,null);
                            }
                        }
                    } else {
                        ToastView.show(MApplication.mContext, "未查询到规格信息");
                    }
                }
            }
        }
    }
}