/// <summary>
        /// 判断当前时间阅览室选座状态
        /// </summary>
        /// <param name="set"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public static SelectSeatMode RoomSelectSeatMode(SeatChooseMethodSet set, DateTime date)
        {
            SelectSeatMode chooseMethod = set.DefaultChooseMethod;

            //判断是否启用高级设置
            if (set.UsedAdvancedSet)
            {
                DayOfWeek day = date.DayOfWeek;
                try
                {
                    SeatChooseMethodPlan plan    = set.AdvancedSelectSeatMode[day];
                    DateTime             strDate = date;
                    //遍历当天的时间段,判断是是否有满足当前时间的设置项
                    foreach (SeatChooseMethodOption option in plan.PlanOption)
                    {
                        DateTime beginDatetime = DateTime.Parse(strDate.ToShortDateString() + " " + option.UsedTime.BeginTime);
                        DateTime endDatetime   = DateTime.Parse(strDate.ToShortDateString() + " " + option.UsedTime.EndTime);
                        if (DateTimeOperate.DateAccord(beginDatetime, endDatetime, date))//判断当前时间是否满足项
                        {
                            chooseMethod = option.ChooseMethod;
                            break;
                        }
                    }
                }
                catch
                {
                    chooseMethod = set.DefaultChooseMethod;
                }
            }

            return(chooseMethod);
        }
        /// <summary>
        /// 判断当前时间是否可以预约座位
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public static bool IsCanBespeakSeat(SeatBespeakSet bespeakSet, DateTime time)
        {
            if (bespeakSet.Used)
            {
                foreach (TimeSpace ts in bespeakSet.NoBespeakDates)
                {
                    DateTime begintime = DateTime.Parse(time.Year + "-" + ts.BeginTime);
                    DateTime endtime   = DateTime.Parse(time.Year + "-" + ts.EndTime);
                    //判断读者选择的时间是否在不允许预约的时间范围内
                    if (DateTimeOperate.DateAccord(begintime, endtime, time))
                    {
                        return(false);
                    }
                }

                //指定的时间减去提前预约的天数,

                DateTime begindate = time.AddDays(-bespeakSet.BespeakBeforeDays);
                if (DateTimeOperate.DateAccord(begindate, time, DateTime.Now))
                {
                    //当前时间在允许预约的时间之间,返回允许预约

                    DateTime canBespeakBegin = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + bespeakSet.CanBespeatTimeSpace.BeginTime);
                    DateTime canBespeakEnd   = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + bespeakSet.CanBespeatTimeSpace.EndTime);
                    if (DateTimeOperate.DateAccord(canBespeakBegin, canBespeakEnd, DateTime.Now))
                    {
                        return(true);
                    }
                    return(false);
                }
                return(false);
            }
            return(false);
        }
 /// <summary>
 /// 计算座位保留时长
 /// </summary>
 /// <param name="set">设置</param>
 /// <param name="time"></param>
 /// <returns></returns>
 public static double GetSeatHoldTime(SeatHoldTimeSet set, DateTime time)
 {
     if (set.UsedAdvancedSet)
     {
         foreach (SeatHoldTimeOption option in set.AdvancedSeatHoldTime)
         {
             if (option.Used)
             { //判断指定的时间是否在开始时间和结束时间中间
                 DateTime begintime = DateTime.Parse(time.ToShortDateString() + " " + option.UsedTime.BeginTime);
                 DateTime endtime   = DateTime.Parse(time.ToShortDateString() + " " + option.UsedTime.EndTime);
                 if (DateTimeOperate.DateAccord(begintime, endtime, time))
                 {
                     return(option.HoldTimeLength);
                 }
             }
         }
         //遍历结束没有返回,则返回默认保留时长
         return(set.DefaultHoldTimeLength);
     }
     else
     {
         //没有启用阅览室设置,则返回默认保留时长
         return(set.DefaultHoldTimeLength);
     }
 }
        /// <summary>
        /// 根据时间计算阅览室的状态
        /// </summary>
        /// <param name="beginTime">开馆时间</param>
        /// <param name="endTime">闭馆时间</param>
        /// <param name="datetime">要判断开放状态的时间</param>
        /// <param name="openBeforeTimeLength">开馆预处理</param>
        /// <param name="closeBeforeTimeLength">闭馆预处理</param>
        /// <returns></returns>
        private static ReadingRoomStatus calcRoomState(string beginTime, string endTime, DateTime datetime, double openBeforeTimeLength, double closeBeforeTimeLength)
        {
            DateTime begindate = DateTime.Parse(datetime.ToShortDateString() + " " + beginTime);
            DateTime enddate   = DateTime.Parse(datetime.ToShortDateString() + " " + endTime);

            if (DateTimeOperate.DateAccord(enddate.AddMinutes(-closeBeforeTimeLength), enddate, datetime))//判断是否符合闭馆预处理
            {
                return(ReadingRoomStatus.BeforeClose);
            }
            if (DateTimeOperate.DateAccord(begindate, enddate, datetime))
            {
                return(ReadingRoomStatus.Open);
            }
            if (DateTimeOperate.DateAccord(begindate.AddMinutes(-openBeforeTimeLength), begindate, datetime))//判断是否符合开馆预处理
            {
                return(ReadingRoomStatus.BeforeOpen);
            }
            return(ReadingRoomStatus.Close);//条件都不符合,则为闭馆。
        }
        void BindUIElement(string seatNo, string seatShortNo)
        {
            DateTime nowDateTime = DateTime.Now;

            if (ReadingRoomList[roomNo].Setting.SeatHoldTime.UsedAdvancedSet)
            {
                for (int i = 0; i < ReadingRoomList[roomNo].Setting.SeatHoldTime.AdvancedSeatHoldTime.Count; i++)
                {
                    if (ReadingRoomList[roomNo].Setting.SeatHoldTime.AdvancedSeatHoldTime[i].Used)
                    {
                        DateTime startDate = DateTime.Parse(nowDateTime.ToShortDateString() + " " + ReadingRoomList[roomNo].Setting.SeatHoldTime.AdvancedSeatHoldTime[i].UsedTime.BeginTime);
                        DateTime endDate   = DateTime.Parse(nowDateTime.ToShortDateString() + " " + ReadingRoomList[roomNo].Setting.SeatHoldTime.AdvancedSeatHoldTime[i].UsedTime.EndTime);
                        if (DateTimeOperate.DateAccord(startDate, endDate, nowDateTime))
                        {
                            lblWaitTime.InnerText    = ReadingRoomList[roomNo].Setting.SeatHoldTime.AdvancedSeatHoldTime[i].HoldTimeLength.ToString();
                            lblGetSeatTime.InnerText = nowDateTime.AddMinutes(ReadingRoomList[roomNo].Setting.SeatHoldTime.AdvancedSeatHoldTime[i].HoldTimeLength).ToShortTimeString();
                            break;
                        }
                    }
                }
            }
            else
            {
                lblWaitTime.InnerText    = ReadingRoomList[roomNo].Setting.SeatHoldTime.DefaultHoldTimeLength.ToString();
                lblGetSeatTime.InnerText = nowDateTime.AddMinutes(ReadingRoomList[roomNo].Setting.SeatHoldTime.DefaultHoldTimeLength).ToShortTimeString();
            }
            lblSeatNo.InnerText          = seatShortNo;
            lblReadingRoomName.InnerText = ReadingRoomList[roomNo].Name;
            lblSeatNo_Booked.InnerText   = seatShortNo;
            //判断自己是否已经预约座位
            //this.LoginUserInfo = handler1.GetReaderInfo(this.UserSchoolInfo,this.LoginUserInfo.CardNo);
            //List<SeatManage.ClassModel.BespeakLogInfo> readerBespeaklist =this.LoginUserInfo.BespeakLog;
            //if (readerBespeaklist.Count > 0)
            //{
            //    page1.Style.Add("display", "none");
            //    page2.Style.Add("display", "none");
            //    page3.Style.Add("display", "block");
            //    MessageTip.InnerText = "您选择的日期已经预约了座位,请先取消原来的预约。";
            //    return;
            //}
        }
Exemplo n.º 6
0
        private void Tip_ShortLeave_Load(object sender, EventArgs e)
        {
            string          roomNum = clientobject.EnterOutLogData.EnterOutlog.ReadingRoomNo;
            ReadingRoomInfo room    = clientobject.EnterOutLogData.Student.AtReadingRoom;

            if (room.Setting.SeatHoldTime.UsedAdvancedSet)
            {
                for (int i = 0; i < room.Setting.SeatHoldTime.AdvancedSeatHoldTime.Count; i++)
                {
                    if (room.Setting.SeatHoldTime.AdvancedSeatHoldTime[i].Used)
                    {
                        DateTime startDate = DateTime.Parse(_NowDate.ToShortDateString() + " " + room.Setting.SeatHoldTime.AdvancedSeatHoldTime[i].UsedTime.BeginTime);
                        DateTime endDate   = DateTime.Parse(_NowDate.ToShortDateString() + " " + room.Setting.SeatHoldTime.AdvancedSeatHoldTime[i].UsedTime.EndTime);
                        if (DateTimeOperate.DateAccord(startDate, endDate, _NowDate))
                        {
                            lblMinutes.Text = room.Setting.SeatHoldTime.AdvancedSeatHoldTime[i].HoldTimeLength.ToString();
                            return;
                        }
                    }
                }
            }
            lblMinutes.Text = room.Setting.SeatHoldTime.DefaultHoldTimeLength.ToString();
        }
        /// <summary>
        /// 预约等待
        /// </summary>
        public void BespeakSeatWait()
        {
            DateTime nowDate = ServiceDateTime.Now;

            if (clientobject.EnterOutLogData.Student.BespeakLog.Count > 0)
            {
                BespeakLogInfo bespeaklog = clientobject.EnterOutLogData.Student.BespeakLog[0];
                //if (!SelectSeatProven.CheckReadingRoomInThisClient(bespeaklog.ReadingRoomNo, clientobject.ClientSetting.DeviceSetting))
                //{  //验证房间号是否属于本触摸屏所管理的阅览室
                //    Tip_Framework uc = new Tip_Framework(TipType.BeapeatRoomNotExists, 9);
                //}
                ReadingRoomSetting set     = clientobject.EnterOutLogData.Student.AtReadingRoom.Setting;
                DateTime           dtBegin = bespeaklog.BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime));
                DateTime           dtEnd   = bespeaklog.BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime));
                if (DateTimeOperate.DateAccord(dtBegin, dtEnd, nowDate) || (set.SeatBespeak.NowDayBespeak && bespeaklog.SubmitTime == bespeaklog.BsepeakTime))
                {
                    //TODO:预约时间在开始时间和结束时间之间,执行预约确认操作
                    //TODO:预约确认时,判断当前座位上是否有人。
                    EnterOutLogInfo seatUsedInfo = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(bespeaklog.SeatNo);

                    if (seatUsedInfo != null && seatUsedInfo.EnterOutState != EnterOutLogType.Leave)
                    { //条件满足,说明座位正在使用。
                        seatUsedInfo.EnterOutState = EnterOutLogType.Leave;
                        seatUsedInfo.EnterOutType  = LogStatus.Valid;
                        seatUsedInfo.TerminalNum   = clientobject.ClientSetting.ClientNo;
                        seatUsedInfo.Remark        = string.Format("预约该座位的读者在终端{0}刷卡确认入座,设置在座读者离开", clientobject.ClientSetting.ClientNo);
                        seatUsedInfo.Flag          = Operation.OtherReader;
                        int newId = -1;
                        if (EnterOutOperate.AddEnterOutLog(seatUsedInfo, ref newId) == HandleResult.Successed)
                        {
                            List <WaitSeatLogInfo> waitInfoList = SeatManage.Bll.T_SM_SeatWaiting.GetWaitSeatList(null, seatUsedInfo.EnterOutLogID, null, null, null);
                            if (waitInfoList.Count > 0)
                            {
                                this.clientobject.EnterOutLogData.WaitSeatLogModel              = waitInfoList[0];
                                this.clientobject.EnterOutLogData.WaitSeatLogModel.OperateType  = Operation.Reader;
                                this.clientobject.EnterOutLogData.WaitSeatLogModel.WaitingState = EnterOutLogType.WaitingCancel;
                                this.clientobject.EnterOutLogData.WaitSeatLogModel.NowState     = LogStatus.Valid;
                                if (!T_SM_SeatWaiting.UpdateWaitLog(this.clientobject.EnterOutLogData.WaitSeatLogModel))
                                {
                                    PopupWindow errorWindow = new PopupWindow(TipType.Exception);
                                    errorWindow.ShowDialog();
                                    return;
                                }
                            }
                        }
                        else
                        {
                            PopupWindow errorWindow = new PopupWindow(TipType.Exception);
                            errorWindow.ShowDialog();
                            return;
                        }
                    }
                    EnterOutLogInfo newEnterOutLog = new EnterOutLogInfo();//构造
                    newEnterOutLog.CardNo                    = bespeaklog.CardNo;
                    newEnterOutLog.EnterOutLogNo             = SeatComm.RndNum();
                    newEnterOutLog.EnterOutState             = EnterOutLogType.BookingConfirmation;
                    newEnterOutLog.EnterOutType              = LogStatus.Valid;
                    newEnterOutLog.Flag                      = Operation.Reader;
                    newEnterOutLog.ReadingRoomNo             = bespeaklog.ReadingRoomNo;
                    newEnterOutLog.ReadingRoomName           = bespeaklog.ReadingRoomName;
                    newEnterOutLog.ShortSeatNo               = bespeaklog.ShortSeatNum;
                    newEnterOutLog.SeatNo                    = bespeaklog.SeatNo;
                    newEnterOutLog.TerminalNum               = clientobject.ClientSetting.ClientNo;
                    newEnterOutLog.Remark                    = string.Format("在终端{0}刷卡,入座预约的{1} {2}号座位", clientobject.ClientSetting.ClientNo, bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                    clientobject.EnterOutLogData.EnterOutlog = newEnterOutLog;
                    int          logid  = -1;
                    HandleResult result = EnterOutOperate.AddEnterOutLog(newEnterOutLog, ref logid); //添加入座记录
                    if (result == HandleResult.Successed)
                    {
                        bespeaklog.BsepeakState = BookingStatus.Confinmed;
                        bespeaklog.CancelPerson = Operation.Reader;
                        bespeaklog.CancelTime   = nowDate;
                        bespeaklog.Remark       = string.Format("在终端{0}刷卡,入座预约的{1} {2}号座位", clientobject.ClientSetting.ClientNo, bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                        T_SM_SeatBespeak.UpdateBespeakList(bespeaklog);
                        PrintData data = new PrintData();
                        data.CardNo          = bespeaklog.CardNo;;
                        data.EnterTime       = nowDate;
                        data.ReaderName      = clientobject.EnterOutLogData.Student.Name;
                        data.ReadingRoomName = clientobject.EnterOutLogData.Student.AtReadingRoom.Name;
                        data.SeatNo          = SeatComm.SeatNoToShortSeatNo(set.SeatNumAmount, bespeaklog.SeatNo);
                        if (clientobject.ClientSetting.DeviceSetting.UsingPrintSlip == PrintSlipMode.AutoPrint)
                        {
                            printer.ThreadPrint(PrintStatus.General, data, clientobject.ClientSetting.ClientNo);
                        }
                        if (clientobject.ClientSetting.DeviceSetting.UsingPrintSlip == PrintSlipMode.UserChoose)
                        {
                            PopupWindow printWindow = new PopupWindow(TipType.PrintConfIrm);
                            printWindow.ShowDialog();
                            if (printWindow.viewModel.OperateResule == HandleResult.Successed)
                            {
                                printer.ThreadPrint(PrintStatus.General, data, clientobject.ClientSetting.ClientNo);
                            }
                        }
                    }
                    PopupWindow popWindow = new PopupWindow(TipType.BespeatSeatConfirmSuccess);
                    popWindow.ShowDialog();
                }
                else if (nowDate.CompareTo(dtBegin) < 0)
                {
                    //TODO:预约时间过早,请在dtBegin 到dtEnd刷卡确认。
                    PopupWindow popWindow = new PopupWindow(TipType.BookConfirmWarn);
                    popWindow.ShowDialog();
                    if (popWindow.viewModel.OperateResule == HandleResult.Successed)
                    {
                        bespeaklog.BsepeakState = BookingStatus.Cencaled;
                        bespeaklog.CancelPerson = Operation.Reader;
                        bespeaklog.CancelTime   = ServiceDateTime.Now;
                        bespeaklog.Remark       = string.Format("在终端{0}刷卡取消{1},{2}号座位的预约。", clientobject.ClientSetting.ClientNo, bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                        int         i = T_SM_SeatBespeak.UpdateBespeakList(bespeaklog);
                        PopupWindow popWindowCancel = new PopupWindow(TipType.BookCancelSuccess);
                        popWindowCancel.ShowDialog();
                    }
                }
                else if (nowDate.CompareTo(dtEnd) < 0)
                {
                    //TODO:最迟确认时间为:dtEnd。
                }
                else
                {
                    //TODO:未知原因,预约确认失败。
                }
            }
        }
        /// <summary>
        /// 预约等待
        /// </summary>
        public void BespeakSeatWait()
        {
            DateTime nowDate = ServiceDateTime.Now;

            if (clientobject.EnterOutLogData.Student.BespeakLog.Count > 0)
            {
                BespeakLogInfo bespeaklog = clientobject.EnterOutLogData.Student.BespeakLog[0];
                //if (!SelectSeatProven.CheckReadingRoomInThisClient(bespeaklog.ReadingRoomNo, clientobject.ClientSetting.DeviceSetting))
                //{  //验证房间号是否属于本触摸屏所管理的阅览室
                //    Tip_Framework uc = new Tip_Framework(TipType.BeapeatRoomNotExists, 9);
                //}
                ReadingRoomSetting set     = clientobject.EnterOutLogData.Student.AtReadingRoom.Setting;
                DateTime           dtBegin = bespeaklog.BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime));
                DateTime           dtEnd   = bespeaklog.BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime));
                if (DateTimeOperate.DateAccord(dtBegin, dtEnd, nowDate))
                {
                    //TODO:预约时间在开始时间和结束时间之间,执行预约确认操作
                    //TODO:预约确认时,判断当前座位上是否有人。
                    EnterOutLogInfo seatUsedInfo = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(bespeaklog.SeatNo);

                    if (seatUsedInfo != null && seatUsedInfo.EnterOutState != EnterOutLogType.Leave)
                    { //条件满足,说明座位正在使用。
                        seatUsedInfo.EnterOutState = EnterOutLogType.Leave;
                        seatUsedInfo.EnterOutType  = LogStatus.Valid;
                        seatUsedInfo.TerminalNum   = clientobject.ClientSetting.ClientNo;
                        seatUsedInfo.Remark        = string.Format("预约该座位的读者在终端{0}刷卡确认入座,设置在座读者离开", clientobject.ClientSetting.ClientNo);
                        seatUsedInfo.Flag          = Operation.OtherReader;
                        int newId = -1;
                        EnterOutOperate.AddEnterOutLog(seatUsedInfo, ref newId);
                    }
                    EnterOutLogInfo newEnterOutLog = new EnterOutLogInfo();//构造
                    newEnterOutLog.CardNo        = bespeaklog.CardNo;
                    newEnterOutLog.EnterOutLogNo = SeatComm.RndNum();
                    newEnterOutLog.EnterOutState = EnterOutLogType.BookingConfirmation;
                    newEnterOutLog.EnterOutType  = LogStatus.Valid;
                    newEnterOutLog.Flag          = Operation.Reader;
                    newEnterOutLog.ReadingRoomNo = bespeaklog.ReadingRoomNo;
                    newEnterOutLog.SeatNo        = bespeaklog.SeatNo;
                    newEnterOutLog.TerminalNum   = clientobject.ClientSetting.ClientNo;
                    newEnterOutLog.Remark        = string.Format("在终端{0}刷卡,入座预约的{1} {2}号座位", clientobject.ClientSetting.ClientNo, bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                    int          logid  = -1;
                    HandleResult result = EnterOutOperate.AddEnterOutLog(newEnterOutLog, ref logid); //添加入座记录
                    if (result == HandleResult.Successed)
                    {
                        bespeaklog.BsepeakState = BookingStatus.Confinmed;
                        bespeaklog.CancelPerson = Operation.Reader;
                        bespeaklog.CancelTime   = nowDate;
                        bespeaklog.Remark       = string.Format("在终端{0}刷卡,入座预约的{1} {2}号座位", clientobject.ClientSetting.ClientNo, bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                        T_SM_SeatBespeak.UpdateBespeakList(bespeaklog);
                        PrintData data = new PrintData();
                        data.CardNo          = bespeaklog.CardNo;;
                        data.EnterTime       = nowDate;
                        data.ReaderName      = clientobject.EnterOutLogData.Student.Name;
                        data.ReadingRoomName = clientobject.EnterOutLogData.Student.AtReadingRoom.Name;
                        data.SeatNo          = SeatComm.SeatNoToShortSeatNo(set.SeatNumAmount, bespeaklog.SeatNo);
                        if (clientobject.ClientSetting.DeviceSetting.UsingPrintSlip)
                        {
                            printer.Print(PrintStatus.Book, data, clientobject.ClientSetting.ClientNo);//打印
                        }
                    }
                    Tip_Framework tip = new Tip_Framework(TipType.BespeatSeatConfirmSuccess, 9);
                    tip.ShowDialog();
                }
                else if (nowDate.CompareTo(dtBegin) < 0)
                {
                    //TODO:预约时间过早,请在dtBegin 到dtEnd刷卡确认。
                    BookConfirmWarn tipFrom = new BookConfirmWarn();
                    tipFrom.BeginTime = bespeaklog.BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime)).ToString("HH:mm");
                    tipFrom.EndTime   = bespeaklog.BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime)).ToString("HH:mm");
                    tipFrom.ShowDialog();
                }
                else if (nowDate.CompareTo(dtEnd) < 0)
                {
                    //TODO:最迟确认时间为:dtEnd。
                }
                else
                {
                    //TODO:未知原因,预约确认失败。
                }
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// 预约签到
        /// </summary>
        /// <param name="bookNo"></param>
        /// <returns></returns>
        public string ConfigSeat(int bookNo)
        {
            try
            {
                DateTime       nowDate    = DateTime.Now;
                BespeakLogInfo bespeaklog = seatManage.GetBespeaklogById(bookNo);
                if (bespeaklog == null)
                {
                    return("获取预约记录失败");
                }
                if (bespeaklog.BsepeakState != BookingStatus.Waiting)
                {
                    return("此条记录状态无效,请查询刷新页面");
                }

                List <ReadingRoomInfo> rooms = seatManage.GetReadingRoomInfo(new List <string>()
                {
                    bespeaklog.ReadingRoomNo
                });
                if (rooms.Count < 1)
                {
                    return("阅览室设置获取失败");
                }
                ReadingRoomSetting set     = rooms[0].Setting;
                DateTime           dtBegin = bespeaklog.BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime));
                DateTime           dtEnd   = bespeaklog.BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime));
                if (DateTimeOperate.DateAccord(dtBegin, dtEnd, nowDate) || (set.SeatBespeak.NowDayBespeak && bespeaklog.SubmitTime == bespeaklog.BsepeakTime))
                {
                    //TODO:预约时间在开始时间和结束时间之间,执行预约确认操作
                    //TODO:预约确认时,判断当前座位上是否有人。
                    EnterOutLogInfo seatUsedInfo = seatManage.GetEnterOutLogInfoBySeatNum(bespeaklog.SeatNo);
                    if (seatUsedInfo != null && seatUsedInfo.EnterOutState != EnterOutLogType.Leave)
                    { //条件满足,说明座位正在使用。
                        seatUsedInfo.EnterOutState = EnterOutLogType.Leave;
                        seatUsedInfo.EnterOutType  = LogStatus.Valid;
                        seatUsedInfo.Remark        = string.Format("预约该座位的读者在手机网站签到入座,设置在座读者离开");
                        seatUsedInfo.Flag          = Operation.OtherReader;
                        int newId = -1;
                        if (seatManage.AddEnterOutLogInfo(seatUsedInfo, ref newId) == HandleResult.Successed)
                        {
                            List <WaitSeatLogInfo> waitInfoList = seatManage.GetWaitLogList(null, seatUsedInfo.EnterOutLogID, null, null, null);
                            if (waitInfoList.Count > 0)
                            {
                                WaitSeatLogInfo WaitSeatLogModel = waitInfoList[0];
                                WaitSeatLogModel.OperateType  = Operation.Reader;
                                WaitSeatLogModel.WaitingState = EnterOutLogType.WaitingCancel;
                                WaitSeatLogModel.NowState     = LogStatus.Valid;
                                if (!seatManage.UpdateWaitLog(WaitSeatLogModel))
                                {
                                    return("取消等待此座位的读者状态失败");
                                }
                            }
                        }
                        else
                        {
                            return("设置当前使用此座位的读者离开失败");
                        }
                    }
                    EnterOutLogInfo newEnterOutLog = new EnterOutLogInfo();//构造
                    newEnterOutLog.CardNo          = bespeaklog.CardNo;
                    newEnterOutLog.EnterOutLogNo   = SeatComm.RndNum();
                    newEnterOutLog.EnterOutState   = EnterOutLogType.BookingConfirmation;
                    newEnterOutLog.EnterOutType    = LogStatus.Valid;
                    newEnterOutLog.Flag            = Operation.Reader;
                    newEnterOutLog.ReadingRoomNo   = bespeaklog.ReadingRoomNo;
                    newEnterOutLog.ReadingRoomName = bespeaklog.ReadingRoomName;
                    newEnterOutLog.ShortSeatNo     = bespeaklog.ShortSeatNum;
                    newEnterOutLog.SeatNo          = bespeaklog.SeatNo;
                    newEnterOutLog.Remark          = string.Format("在手机预约网站预约签到,入座预约的{0} {1}号座位", bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                    int          logid  = -1;
                    HandleResult result = seatManage.AddEnterOutLogInfo(newEnterOutLog, ref logid); //添加入座记录
                    if (result == HandleResult.Successed)
                    {
                        bespeaklog.BsepeakState = BookingStatus.Confinmed;
                        bespeaklog.CancelPerson = Operation.Reader;
                        bespeaklog.CancelTime   = nowDate;
                        bespeaklog.Remark       = string.Format("在手机预约网站预约签到,入座预约的{0} {1}号座位", bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                        if (seatManage.UpdateBespeakLogInfo(bespeaklog) > 0)
                        {
                            return("");
                        }
                        else
                        {
                            return("系统错误,签到失败");
                        }
                    }
                    else
                    {
                        return("系统错误,签到失败");
                    }
                }
                else if (nowDate.CompareTo(dtBegin) < 0)
                {
                    //TODO:预约时间过早,请在dtBegin 到dtEnd刷卡确认。
                    return("对不起,您预约的座位尚未到达签到时间,请在" + dtBegin.ToShortTimeString() + "到" + dtEnd.ToShortTimeString() + "间进行签到");
                }
                else if (nowDate.CompareTo(dtEnd) < 0)
                {
                    return("对不起,您预约已超时");
                }
                else
                {
                    return("系统错误,签到失败");
                }
            }
            catch (Exception ex)
            {
                SeatManageComm.WriteLog.Write(string.Format("预约签到失败:{0}", ex.Message));
                return("系统错误,签到失败");
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 预约等待
        /// </summary>
        public void BespeakSeatWait()
        {
            DateTime nowDate = ServiceDateTime.Now;

            if (clientobject.EnterOutLogData.Student.BespeakLog.Count > 0)
            {
                BespeakLogInfo bespeaklog = clientobject.EnterOutLogData.Student.BespeakLog[0];
                //if (!SelectSeatProven.CheckReadingRoomInThisClient(bespeaklog.ReadingRoomNo, clientobject.ClientSetting.DeviceSetting))
                //{  //验证房间号是否属于本触摸屏所管理的阅览室
                //    Tip_Framework uc = new Tip_Framework(TipType.BeapeatRoomNotExists, 9);
                //}
                ReadingRoomSetting set     = clientobject.EnterOutLogData.Student.AtReadingRoom.Setting;
                DateTime           dtBegin = bespeaklog.BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime));
                DateTime           dtEnd   = bespeaklog.BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime));
                if (DateTimeOperate.DateAccord(dtBegin, dtEnd, nowDate) || (set.SeatBespeak.NowDayBespeak && bespeaklog.SubmitTime == bespeaklog.BsepeakTime))
                {
                    //TODO:预约时间在开始时间和结束时间之间,执行预约确认操作
                    //TODO:预约确认时,判断当前座位上是否有人。
                    EnterOutLogInfo seatUsedInfo = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(bespeaklog.SeatNo);

                    if (seatUsedInfo != null && seatUsedInfo.EnterOutState != EnterOutLogType.Leave)
                    { //条件满足,说明座位正在使用。
                        seatUsedInfo.EnterOutState = EnterOutLogType.Leave;
                        seatUsedInfo.EnterOutType  = LogStatus.Valid;
                        seatUsedInfo.Remark        = string.Format("预约该座位的读者在离开终端刷卡确认入座,设置在座读者离开");
                        seatUsedInfo.Flag          = Operation.OtherReader;
                        int newId = -1;
                        EnterOutOperate.AddEnterOutLog(seatUsedInfo, ref newId);
                    }
                    EnterOutLogInfo newEnterOutLog = new EnterOutLogInfo();//构造
                    newEnterOutLog.CardNo                    = bespeaklog.CardNo;
                    newEnterOutLog.EnterOutLogNo             = SeatComm.RndNum();
                    newEnterOutLog.EnterOutState             = EnterOutLogType.BookingConfirmation;
                    newEnterOutLog.EnterOutType              = LogStatus.Valid;
                    newEnterOutLog.Flag                      = Operation.Reader;
                    newEnterOutLog.ReadingRoomNo             = bespeaklog.ReadingRoomNo;
                    newEnterOutLog.ReadingRoomName           = bespeaklog.ReadingRoomName;
                    newEnterOutLog.ShortSeatNo               = bespeaklog.ShortSeatNum;
                    newEnterOutLog.SeatNo                    = bespeaklog.SeatNo;
                    newEnterOutLog.Remark                    = string.Format("在离开终端刷卡,入座预约的{0} {1}号座位", bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                    clientobject.EnterOutLogData.EnterOutlog = newEnterOutLog;
                    int          logid  = -1;
                    HandleResult result = EnterOutOperate.AddEnterOutLog(newEnterOutLog, ref logid); //添加入座记录
                    if (result == HandleResult.Successed)
                    {
                        bespeaklog.BsepeakState = BookingStatus.Confinmed;
                        bespeaklog.CancelPerson = Operation.Reader;
                        bespeaklog.CancelTime   = nowDate;
                        bespeaklog.Remark       = string.Format("在离开终端刷卡,入座预约的{0} {1}号座位", bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                        T_SM_SeatBespeak.UpdateBespeakList(bespeaklog);
                    }
                    if (popMessage != null)
                    {
                        popMessage(this, new PopMessage(TipType.BespeatSeatConfirmSuccess, "预约签到成功"));
                    }
                }
                else if (nowDate.CompareTo(dtBegin) < 0)
                {
                    if (popMessage != null)
                    {
                        popMessage(this, new PopMessage(TipType.BookConfirmWarn, "没到签到时间"));
                    }
                }
                else if (nowDate.CompareTo(dtEnd) < 0)
                {
                    //TODO:最迟确认时间为:dtEnd。
                }
                else
                {
                    //TODO:未知原因,预约确认失败。
                }
            }
        }
Exemplo n.º 11
0
        public string QRcodeOperation(string codeStr, string studentNo)
        {
            try
            {
                AJM_HandleResult          result          = new AJM_HandleResult();
                string[]                  scanResultArray = codeStr.Split('?');
                ClientCheckCodeParamModel scancode        = null;
                if (scanResultArray.Length >= 2)
                {
                    string[] strParam = scanResultArray[1].Split('=');
                    if (strParam.Length >= 2)
                    {
                        scancode = ClientCheckCodeParamModel.Prase(strParam[1]);//兼容url的二维码。
                    }
                }
                else
                {
                    scancode = ClientCheckCodeParamModel.Prase(codeStr);
                }
                DateTime ndt = DateTime.Now;
                if (scancode == null)
                {
                    result.Result = false;
                    result.Msg    = "对不起,二维码错误!";
                    return(JSONSerializer.Serialize(result));
                }
                if (scancode.CodeTime.AddMinutes(1) <= ndt)
                {
                    result.Result = false;
                    result.Msg    = "对不起,二维码超时!";
                    return(JSONSerializer.Serialize(result));
                }
                if (string.IsNullOrEmpty(studentNo))
                {
                    result.Result = false;
                    result.Msg    = "读者学号为空。";
                    return(JSONSerializer.Serialize(result));
                }
                ReaderInfo reader = SeatManageDateService.GetReader(studentNo, true);
                if (reader == null)
                {
                    result.Result = false;
                    result.Msg    = "获取读者信息失败。";
                    return(JSONSerializer.Serialize(result));
                }
                if (reader.EnterOutLog == null && reader.BespeakLog.Count < 1)
                {
                    result.Result = false;
                    result.Msg    = "对不起,您还没有座位,请先选择或预约一个座位。";
                }

                if (reader.EnterOutLog != null)
                {
                    switch (reader.EnterOutLog.EnterOutState)
                    {
                    case EnterOutLogType.BookingConfirmation: //预约入座
                    case EnterOutLogType.SelectSeat:          //选座
                    case EnterOutLogType.ContinuedTime:       //续时
                    case EnterOutLogType.ComeBack:            //暂离回来
                    case EnterOutLogType.ReselectSeat:        //重新选座
                    case EnterOutLogType.WaitingSuccess:      //等待入座
                        result.Result = false;
                        result.Msg    = "您当前已有座位。";
                        break;

                    case EnterOutLogType.ShortLeave:
                        reader.EnterOutLog.EnterOutState = EnterOutLogType.ComeBack;
                        reader.EnterOutLog.Remark        = string.Format("您在选座终端{0}扫描二维码恢复在座,本次暂离时长{1}分钟。", scancode.ClientNo, ((int)(ndt - reader.EnterOutLog.EnterOutTime).TotalMinutes));
                        reader.EnterOutLog.Flag          = Operation.Reader;
                        reader.EnterOutLog.EnterOutTime  = ndt;
                        result.Result = true;
                        int newId = -1;
                        if (SeatManageDateService.AddEnterOutLogInfo(reader.EnterOutLog, ref newId) != HandleResult.Successed)
                        {
                            result.Result = false;
                            result.Msg    = "对不起,暂离回来失败!";
                            return(JSONSerializer.Serialize(result));
                        }
                        result.Result = true;
                        result.Msg    = reader.EnterOutLog.Remark;
                        List <WaitSeatLogInfo> waitSeatLogs = SeatManageDateService.GetWaitLogList("", reader.EnterOutLog.EnterOutLogID, null, null, null);
                        if (waitSeatLogs.Count > 0)
                        {
                            WaitSeatLogInfo waitSeatLog = waitSeatLogs[0];
                            waitSeatLog.NowState     = LogStatus.Fail;
                            waitSeatLog.OperateType  = Operation.OtherReader;
                            waitSeatLog.WaitingState = EnterOutLogType.WaitingCancel;
                            SeatManageDateService.UpdateWaitLog(waitSeatLog);
                        }
                        break;

                    case EnterOutLogType.Leave:
                        result.Result = false;
                        result.Msg    = "对不起,您还没有座位,请先选择或预约一个座位。";
                        break;

                    default:
                        result.Result = false;
                        result.Msg    = "对不起,您还没有座位,请先选择或预约一个座位。";
                        break;
                    }
                    return(JSONSerializer.Serialize(result));
                }
                ReadingRoomSetting set     = reader.AtReadingRoom.Setting;
                DateTime           dtBegin = reader.BespeakLog[0].BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime));
                DateTime           dtEnd   = reader.BespeakLog[0].BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime));
                if (!DateTimeOperate.DateAccord(dtBegin, dtEnd, ndt) && (!set.SeatBespeak.NowDayBespeak || reader.BespeakLog[0].SubmitTime != reader.BespeakLog[0].BsepeakTime))
                {
                    result.Result = false;
                    result.Msg    = "对不起,您预约的座位没有到达签到时间";
                    return(JSONSerializer.Serialize(result));
                }
                EnterOutLogInfo seatUsedInfo = SeatManageDateService.GetEnterOutLogInfoBySeatNum(reader.BespeakLog[0].SeatNo);
                if (seatUsedInfo != null && seatUsedInfo.EnterOutState != EnterOutLogType.Leave)
                {
                    //条件满足,说明座位正在使用。
                    seatUsedInfo.EnterOutState = EnterOutLogType.Leave;
                    seatUsedInfo.EnterOutType  = LogStatus.Valid;
                    seatUsedInfo.Remark        = "您正在使用的座位已被原预约的读者";
                    seatUsedInfo.Flag          = Operation.OtherReader;
                    int newId = -1;
                    if (SeatManageDateService.AddEnterOutLogInfo(seatUsedInfo, ref newId) != HandleResult.Successed)
                    {
                        result.Result = false;
                        result.Msg    = "对不起,此阅览室尚未开放。";
                        return(JSONSerializer.Serialize(result));
                    }

                    List <WaitSeatLogInfo> waitInfoList = SeatManageDateService.GetWaitLogList(null, seatUsedInfo.EnterOutLogID, null, null, null);
                    if (waitInfoList.Count > 0)
                    {
                        WaitSeatLogInfo waitSeatLogModel = waitInfoList[0];
                        waitSeatLogModel.OperateType  = Operation.Reader;
                        waitSeatLogModel.WaitingState = EnterOutLogType.WaitingCancel;
                        waitSeatLogModel.NowState     = LogStatus.Valid;
                        SeatManageDateService.UpdateWaitLog(waitSeatLogModel);
                    }
                }
                EnterOutLogInfo newEnterOutLog = new EnterOutLogInfo();//构造
                newEnterOutLog.CardNo          = reader.BespeakLog[0].CardNo;
                newEnterOutLog.EnterOutLogNo   = SeatComm.RndNum();
                newEnterOutLog.EnterOutState   = EnterOutLogType.BookingConfirmation;
                newEnterOutLog.EnterOutType    = LogStatus.Valid;
                newEnterOutLog.Flag            = Operation.Reader;
                newEnterOutLog.ReadingRoomNo   = reader.BespeakLog[0].ReadingRoomNo;
                newEnterOutLog.ReadingRoomName = reader.BespeakLog[0].ReadingRoomName;
                newEnterOutLog.ShortSeatNo     = reader.BespeakLog[0].ShortSeatNum;
                newEnterOutLog.SeatNo          = reader.BespeakLog[0].SeatNo;
                newEnterOutLog.Remark          = string.Format("您在选座终端{0}扫描二维码,签到入座预约的{1} {2}号座位", scancode.ClientNo, reader.BespeakLog[0].ReadingRoomName, reader.BespeakLog[0].ShortSeatNum);

                int logid = -1;
                if (SeatManageDateService.AddEnterOutLogInfo(newEnterOutLog, ref logid) == HandleResult.Successed)
                {
                    reader.BespeakLog[0].BsepeakState = BookingStatus.Confinmed;
                    reader.BespeakLog[0].CancelPerson = Operation.Reader;
                    reader.BespeakLog[0].CancelTime   = ndt;
                    reader.BespeakLog[0].Remark       = newEnterOutLog.Remark;
                    SeatManageDateService.UpdateBespeakLogInfo(reader.BespeakLog[0]);
                }
                result.Result = true;
                result.Msg    = newEnterOutLog.Remark;
                return(JSONSerializer.Serialize(result));
            }
            catch (Exception ex)
            {
                WriteLog.Write("读者签到/回来遇到异常:" + ex.Message);
                AJM_HandleResult result = new AJM_HandleResult();
                result.Result = false;
                result.Msg    = "执行遇到异常";
                return(JSONSerializer.Serialize(result));
            }
        }
        /// <summary>
        /// 预约等待
        /// </summary>
        public void BespeakCheck()
        {
            if (Clientobject.EnterOutLogData.Student.BespeakLog.Count <= 0)
            {
                return;
            }
            BespeakLogInfo     bespeaklog = Clientobject.EnterOutLogData.Student.BespeakLog[0];
            ReadingRoomSetting set        = Clientobject.EnterOutLogData.Student.AtReadingRoom.Setting;
            DateTime           dtBegin    = bespeaklog.BsepeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime));
            DateTime           dtEnd      = bespeaklog.BsepeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime));
            DateTime           nowDate    = ServiceDateTime.Now;

            if (DateTimeOperate.DateAccord(dtBegin, dtEnd, nowDate) || (set.SeatBespeak.NowDayBespeak && bespeaklog.SubmitTime == bespeaklog.BsepeakTime))
            {
                //TODO:预约时间在开始时间和结束时间之间,执行预约确认操作
                //TODO:预约确认时,判断当前座位上是否有人。
                EnterOutLogInfo seatUsedInfo = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(bespeaklog.SeatNo);
                if (seatUsedInfo != null && seatUsedInfo.EnterOutState != EnterOutLogType.Leave)
                { //条件满足,说明座位正在使用。
                    seatUsedInfo.EnterOutState = EnterOutLogType.Leave;
                    seatUsedInfo.EnterOutType  = LogStatus.Valid;
                    seatUsedInfo.TerminalNum   = Clientobject.ClientSetting.ClientNo;
                    seatUsedInfo.Remark        = string.Format("预约该座位的读者在终端{0}刷卡确认入座,设置在座读者离开", Clientobject.ClientSetting.ClientNo);
                    seatUsedInfo.Flag          = Operation.OtherReader;
                    int newId = -1;
                    if (EnterOutOperate.AddEnterOutLog(seatUsedInfo, ref newId) == HandleResult.Successed)
                    {
                        List <WaitSeatLogInfo> waitInfoList = T_SM_SeatWaiting.GetWaitSeatList(null, seatUsedInfo.EnterOutLogID, null, null, null);
                        if (waitInfoList.Count > 0)
                        {
                            Clientobject.EnterOutLogData.WaitSeatLogModel              = waitInfoList[0];
                            Clientobject.EnterOutLogData.WaitSeatLogModel.OperateType  = Operation.Reader;
                            Clientobject.EnterOutLogData.WaitSeatLogModel.WaitingState = EnterOutLogType.WaitingCancel;
                            Clientobject.EnterOutLogData.WaitSeatLogModel.NowState     = LogStatus.Valid;
                            if (!T_SM_SeatWaiting.UpdateWaitLog(Clientobject.EnterOutLogData.WaitSeatLogModel))
                            {
                                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.Exception);
                                return;
                            }
                        }
                    }
                    else
                    {
                        PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.Exception);
                        return;
                    }
                }
                EnterOutLogInfo newEnterOutLog = new EnterOutLogInfo();//构造
                newEnterOutLog.CardNo                    = bespeaklog.CardNo;
                newEnterOutLog.EnterOutLogNo             = SeatComm.RndNum();
                newEnterOutLog.EnterOutState             = EnterOutLogType.BookingConfirmation;
                newEnterOutLog.EnterOutType              = LogStatus.Valid;
                newEnterOutLog.Flag                      = Operation.Reader;
                newEnterOutLog.ReadingRoomNo             = bespeaklog.ReadingRoomNo;
                newEnterOutLog.ReadingRoomName           = bespeaklog.ReadingRoomName;
                newEnterOutLog.ShortSeatNo               = bespeaklog.ShortSeatNum;
                newEnterOutLog.SeatNo                    = bespeaklog.SeatNo;
                newEnterOutLog.TerminalNum               = Clientobject.ClientSetting.ClientNo;
                newEnterOutLog.Remark                    = string.Format("在终端{0}刷卡,入座预约的{1} {2}号座位", Clientobject.ClientSetting.ClientNo, bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                Clientobject.EnterOutLogData.EnterOutlog = newEnterOutLog;
                int          logid  = -1;
                HandleResult result = EnterOutOperate.AddEnterOutLog(newEnterOutLog, ref logid); //添加入座记录
                if (result == HandleResult.Successed)
                {
                    bespeaklog.BsepeakState = BookingStatus.Confinmed;
                    bespeaklog.CancelPerson = Operation.Reader;
                    bespeaklog.CancelTime   = nowDate;
                    bespeaklog.Remark       = string.Format("在终端{0}刷卡,入座预约的{1} {2}号座位", Clientobject.ClientSetting.ClientNo,
                                                            bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                    T_SM_SeatBespeak.UpdateBespeakList(bespeaklog);

                    PrintData data = new PrintData();
                    data.CardNo = bespeaklog.CardNo;
                    ;
                    data.EnterTime       = nowDate;
                    data.ReaderName      = Clientobject.EnterOutLogData.Student.Name;
                    data.ReadingRoomName = Clientobject.EnterOutLogData.Student.AtReadingRoom.Name;
                    data.SeatNo          = SeatComm.SeatNoToShortSeatNo(set.SeatNumAmount, bespeaklog.SeatNo);

                    switch (Clientobject.ClientSetting.DeviceSetting.UsingPrintSlip)
                    {
                    case PrintSlipMode.AutoPrint:
                        printer.ThreadPrint(PrintStatus.General, data, Clientobject.ClientSetting.ClientNo);
                        break;

                    case PrintSlipMode.UserChoose:
                        PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.PrintConfIrm);
                        if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Successed)
                        {
                            printer.ThreadPrint(PrintStatus.General, data, Clientobject.ClientSetting.ClientNo);
                        }
                        break;

                    case PrintSlipMode.NotPrint:
                        break;
                    }

                    PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.BespeatSeatConfirmSuccess);
                }
                else
                {
                    PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.Exception);
                }
            }
            else if (nowDate.CompareTo(dtBegin) < 0)
            {
                //TODO:预约时间过早,请在dtBegin 到dtEnd刷卡确认。
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.BookConfirmWarn);
                if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule != HandleResult.Successed)
                {
                    return;
                }
                bespeaklog.BsepeakState = BookingStatus.Cencaled;
                bespeaklog.CancelPerson = Operation.Reader;
                bespeaklog.CancelTime   = ServiceDateTime.Now;
                bespeaklog.Remark       = string.Format("在终端{0}刷卡取消{1},{2}号座位的预约。", Clientobject.ClientSetting.ClientNo, bespeaklog.ReadingRoomName, bespeaklog.ShortSeatNum);
                int i = T_SM_SeatBespeak.UpdateBespeakList(bespeaklog);
                PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.BookCancelSuccess);
            }
        }