Esempio n. 1
0
        /// <summary>
        /// 选座座位
        /// </summary>
        /// <param name="seatBtn"></param>
        /// <returns></returns>
        public bool SelectSeat(SeatUC_ViewModel seatVM)
        {
            SeatLockState lockseat = T_SM_Seat.LockSeat(seatVM.LongSeatNo);

            if (lockseat != SeatLockState.Locked)
            {
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking);
                return(false);
            }
            ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo     = seatVM.ShortSeatNo;
            ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = _ReadingRoomName;
            ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo   = _ReadingRoomNo;
            PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectSeatConfinmed);
            if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Successed)
            {
                ClientObject.EnterOutLogData.EnterOutlog.SeatNo      = seatVM.LongSeatNo;
                ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatVM.ShortSeatNo;
                ClientObject.EnterOutLogData.EnterOutlog.TerminalNum = ClientObject.ClientSetting.ClientNo;
                ClientObject.EnterOutLogData.FlowControl             = ClientOperation.SelectSeat; //操作为选择座位
                ClientObject.EnterOutLogData.EnterOutlog.Remark      = string.Format("在终端{0}手动选择,{1},{2}号座位", ClientObject.ClientSetting.ClientNo, ClientObject.EnterOutLogData.Student.AtReadingRoom.Name, seatVM.ShortSeatNo);
                ClientObject.EnterOutLogData.FlowControl             = ClientOperation.SelectSeat;
                return(true);
            }
            else
            {
                T_SM_Seat.UnLockSeat(seatVM.LongSeatNo); //确认窗口点击取消或者自动关闭,则解锁。
                return(false);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 获取布局图
        /// </summary>
        public void GetLayout()
        {
            Layout = ClientObject.ReadingRoomList[ReadingRoomNo].SeatList;
            bool isCanSelectBespeak = ClientObject.ReadingRoomList[ReadingRoomNo].Setting.SeatBespeak.Used && ClientObject.ReadingRoomList[ReadingRoomNo].Setting.SeatBespeak.SelectBespeakSeat;
            bool isCanWait          = ClientObject.ReadingRoomList[ReadingRoomNo].Setting.NoManagement.Used;

            foreach (KeyValuePair <string, Seat> seat in Layout.Seats)
            {
                SeatUC_ViewModel seatVM = new SeatUC_ViewModel();
                seat.Value.ShortSeatNo        = SeatComm.SeatNoToShortSeatNo(ClientObject.ReadingRoomList[ReadingRoomNo].Setting.SeatNumAmount, seat.Value.SeatNo);
                seatVM.IsCanSelectBespeakSeat = isCanSelectBespeak;
                seatVM.IsCanWaitSeat          = isCanWait;
                seatVM.IsBespeak          = false;
                seatVM.IsPower            = seat.Value.HavePower;
                seatVM.IsShortLeave       = false;
                seatVM.IsStop             = seat.Value.IsSuspended;
                seatVM.IsUsing            = false;
                seatVM.IsWaiting          = false;
                seatVM.LongSeatNo         = seat.Value.SeatNo;
                seatVM.ReadingRoomNo      = seat.Value.ReadingRoomNum;
                seatVM.ShortSeatNo        = seat.Value.ShortSeatNo;
                seatVM.SelectSeat        += RoomSeatWindow_SelectSeat;
                seatVM.SelectBespeakSeat += RoomSeatWindow_SelectBespeakSeat;
                seatVM.WaitSeat          += RoomSeatWindow_WaitSeat;
                _seatLayoutList.Add(seat.Key, seatVM);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 等待座位
        /// </summary>
        /// <returns></returns>
        public bool WaitSeat(SeatUC_ViewModel seatVM)
        {
            WaitSeatLogInfo lastWaitInfo = T_SM_SeatWaiting.GetListWaitLogByCardNo(ClientObject.EnterOutLogData.EnterOutlog.CardNo, ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo);
            ReadingRoomInfo roomInfo     = ClientObject.EnterOutLogData.Student.AtReadingRoom;

            if (!string.IsNullOrEmpty(ClientObject.EnterOutLogData.EnterOutlog.SeatNo))
            {
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.WaitSeatWithSeat);
                return(false);
            }

            if (lastWaitInfo != null && lastWaitInfo.SeatWaitTime.AddMinutes(roomInfo.Setting.NoManagement.OperatingInterval).CompareTo(ServiceDateTime.Now) >= 0)
            {
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.WaitSeatFrequent);
                return(false);
            }
            SeatLockState lockseat = T_SM_Seat.LockSeat(seatVM.LongSeatNo);

            if (lockseat != SeatLockState.Locked) //座位成功加锁
            {
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking);
                return(false);
            }
            ClientObject.EnterOutLogData.WaitSeatLogModel = new WaitSeatLogInfo()
            {
                SeatNo = seatVM.ShortSeatNo
            };
            PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SetShortWarning);
            ClientObject.EnterOutLogData.WaitSeatLogModel = null;
            if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Successed)
            {
                //初始化等待记录 记录ID需要待执行之后添加。
                WaitSeatLogInfo waitInfo = new WaitSeatLogInfo();
                waitInfo.CardNo       = ClientObject.EnterOutLogData.EnterOutlog.CardNo;
                waitInfo.NowState     = LogStatus.Valid;
                waitInfo.OperateType  = Operation.Reader;
                waitInfo.WaitingState = EnterOutLogType.Waiting;

                EnterOutLogInfo seatUsingEnterOutInfo = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatVM.LongSeatNo);
                seatUsingEnterOutInfo.EnterOutState = EnterOutLogType.ShortLeave;
                seatUsingEnterOutInfo.EnterOutType  = LogStatus.Valid;
                seatUsingEnterOutInfo.Flag          = Operation.OtherReader;
                seatUsingEnterOutInfo.TerminalNum   = ClientObject.ClientSetting.ClientNo;
                seatUsingEnterOutInfo.Remark        = string.Format("在{0} {1}号座位,被读者{2}在终端{3}设置为暂离并等待该座位", seatUsingEnterOutInfo.ReadingRoomName, seatUsingEnterOutInfo.ShortSeatNo, waitInfo.CardNo, ClientObject.ClientSetting.ClientNo);

                ClientObject.EnterOutLogData.EnterOutlog      = seatUsingEnterOutInfo; //要等待读者的暂离记录
                ClientObject.EnterOutLogData.WaitSeatLogModel = waitInfo;              //等待记录
                ClientObject.EnterOutLogData.FlowControl      = ClientOperation.WaitSeat;
                return(true);
            }
            else
            {
                T_SM_Seat.UnLockSeat(seatVM.LongSeatNo);//确认窗口点击取消或者自动关闭,则解锁。
                return(false);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 选择预约的座位
        /// </summary>
        /// <param name="seatBtn"></param>
        /// <returns></returns>
        public bool SelectBookingSeat(SeatUC_ViewModel seatVM)
        {
            DateTime datetimeNow = ServiceDateTime.Now;
            List <BespeakLogInfo> bespeakLogList = T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatVM.LongSeatNo, datetimeNow.Date);

            if (bespeakLogList.Count > 0)
            {
                if (bespeakLogList[0].BsepeakTime.AddMinutes(-double.Parse(ClientObject.EnterOutLogData.Student.AtReadingRoom.Setting.SeatBespeak.ConfirmTime.BeginTime)) <= datetimeNow)
                {
                    PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.IsBookingSeat);
                    return(false);
                }
                ClientObject.EnterOutLogData.BespeakLogInfo = bespeakLogList[0];
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectBookingSeatWarn);
                if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Failed)
                {
                    ClientObject.EnterOutLogData.BespeakLogInfo = null;
                    return(false);
                }
            }
            SeatLockState lockseat = T_SM_Seat.LockSeat(seatVM.LongSeatNo);

            if (lockseat != SeatLockState.Locked) //座位成功加锁
            {
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking);
                return(false);
            }
            ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo     = seatVM.ShortSeatNo;
            ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = _ReadingRoomName;
            ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo   = _ReadingRoomNo;
            PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectSeatConfinmed);
            if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Failed)
            {
                T_SM_Seat.UnLockSeat(seatVM.LongSeatNo);//确认窗口点击取消或者自动关闭,则解锁。
                return(false);
            }
            ClientObject.EnterOutLogData.EnterOutlog.SeatNo      = seatVM.LongSeatNo;
            ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatVM.ShortSeatNo;
            ClientObject.EnterOutLogData.EnterOutlog.TerminalNum = ClientObject.ClientSetting.ClientNo;
            ClientObject.EnterOutLogData.EnterOutlog.Remark      = string.Format("在终端{0}手动选择,{1},{2}号座位", ClientObject.ClientSetting.ClientNo, ClientObject.EnterOutLogData.Student.AtReadingRoom.Name, seatVM.ShortSeatNo);
            ClientObject.EnterOutLogData.FlowControl             = ClientOperation.SelectSeat; //操作为选择座位
            return(true);
        }