public void PosCardHandle(string cardNo) { try { ClientObject.EnterOutLogData = new OperateResult.OperateResult(); ClientObject.EnterOutLogData.Student = EnterOutOperate.GetReaderSeatState(cardNo); #region 判断当前读者状态 EnterOutLogType nowReaderStatus = EnterOutLogType.Leave; if (ClientObject.EnterOutLogData.Student.EnterOutLog != null && ClientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState != EnterOutLogType.Leave) { //如果记录不为空,设置为当前记录状态 nowReaderStatus = ClientObject.EnterOutLogData.Student.EnterOutLog.EnterOutState; } else if (ClientObject.EnterOutLogData.Student.BespeakLog.Count > 0) { nowReaderStatus = EnterOutLogType.BespeakWaiting; } else if (ClientObject.EnterOutLogData.Student.WaitSeatLog != null) { nowReaderStatus = EnterOutLogType.Waiting; } #endregion //如果有未读的消息则显示消息窗口 if (ClientObject.EnterOutLogData.Student.NoticeInfo.Count > 0) { ReaderNoteWindowObject.GetInstance().Window.ShowMessage(); } //根据读者状态进入不同操作 switch (nowReaderStatus) { case EnterOutLogType.Leave: ClientObject.EnterOutLogData.EnterOutlog = new SeatManage.ClassModel.EnterOutLogInfo(); ClientObject.EnterOutLogData.EnterOutlog.CardNo = cardNo; posCardHandle.ChooseSeat(); break; case EnterOutLogType.BespeakWaiting: posCardHandle.BespeakCheck(); break; case EnterOutLogType.BookingConfirmation: case EnterOutLogType.SelectSeat: case EnterOutLogType.ContinuedTime: case EnterOutLogType.ComeBack: case EnterOutLogType.ReselectSeat: case EnterOutLogType.WaitingSuccess: ClientObject.EnterOutLogData.EnterOutlog = ClientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.LeaveOperate(); break; case EnterOutLogType.ShortLeave: ClientObject.EnterOutLogData.EnterOutlog = ClientObject.EnterOutLogData.Student.EnterOutLog; posCardHandle.CometoBack(); break; case EnterOutLogType.Waiting: posCardHandle.WaitingSeat(); break; } } catch (Exception ex) { WriteLog.Write(string.Format("执行遇到错误:{0}", ex.Message)); PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.Exception); } finally { ClientObject.EnterOutLogData = null; } }