|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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())); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()]; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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.getCurKeyCode())){ | 
|---|
|  |  |  | //空了 | 
|---|
|  |  |  | doRegister(7,null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | //还 | 
|---|
|  |  |  | if(!TextUtils.isEmpty(gridDo.getCurKeyCode())){ | 
|---|
|  |  |  | //有钥匙了 | 
|---|
|  |  |  | doRegister(7,null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | protected void onDestroy() { | 
|---|
|  |  |  | super.onDestroy(); | 
|---|
|  |  |  | 
|---|
|  |  |  | @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())); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | getVM().closeGrid(gridDo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | Toast.makeText(mContext, "未查询到", Toast.LENGTH_LONG).show(); | 
|---|
|  |  |  | ToastView.show(MApplication.mContext, "未查询到规格信息"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //关门失败 | 
|---|
|  |  |  | 
|---|
|  |  |  | getVM().closeGrid(gridDo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | Toast.makeText(mContext, "未查询到", Toast.LENGTH_LONG).show(); | 
|---|
|  |  |  | ToastView.show(MApplication.mContext, "未查询到规格信息"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //关门失败 | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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, "未查询到规格信息"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|