string bespeakSureTime(ReadingRoomSetting set) { T_SM_ReadingRoom bllReadingRoom = new T_SM_ReadingRoom(); DateTime bespeakTime = Convert.ToDateTime(bllReadingRoom.GetRoomOpenTimeByDate(set, date).BeginTime); if (spanSelect.Visible) { bespeakTime = Convert.ToDateTime(spanSelect.Items[spanSelect.SelectedIndex].Value); } else { bespeakTime = Convert.ToDateTime(timeSelect.Items[timeSelect.SelectedIndex].Value); } return(string.Format(bespeakTime.ToShortTimeString())); }
/// <summary> /// 获取阅览室列表 /// </summary> public void GetRoomList() { _roomList = T_SM_ReadingRoom.GetReadingRooms(null, null, null); foreach (ReadingRoomInfo item in _roomList) { VM_UC_RoomStatus status = new VM_UC_RoomStatus(); status.AllSeatCount = item.SeatList.Seats.Count(u => u.Value.IsSuspended == false); status.RoomName = item.Name; status.RoomNo = item.No; StateList.Add(item.No, status); } LibStatus.AllSeatCount = StateList.Sum(u => u.Value.AllSeatCount); LibStatus.RoomName = _roomList[0].Libaray.Name; GetUsage(); ShowTimeRun(); }
/// <summary> /// 获取最新设置 /// </summary> public void GetSetting() { try { //获取全部阅览室信息和黑名单设置 List <ReadingRoomInfo> rooms = T_SM_ReadingRoom.GetReadingRooms(null, null, null); regulationRulesSetting = T_SM_SystemSet.GetRegulationRulesSetting(); roomList.Clear(); foreach (ReadingRoomInfo room in rooms) { roomList.Add(room.No, room); } } catch (Exception e) { WriteLog.Write(string.Format("监控服务:获取阅览室设置时遇到错误:{0}", e.Message)); } }
string bespeakSureTimeSpan(ReadingRoomSetting set) { T_SM_ReadingRoom bllReadingRoom = new T_SM_ReadingRoom(); DateTime bespeakTime = Convert.ToDateTime(bllReadingRoom.GetRoomOpenTimeByDate(set, date).BeginTime); if (spanSelect.Visible) { bespeakTime = Convert.ToDateTime(spanSelect.Items[spanSelect.SelectedIndex].Value); } else { bespeakTime = Convert.ToDateTime(timeSelect.Items[timeSelect.SelectedIndex].Value); } DateTime bespeakBeginTime = bespeakTime.AddMinutes(-double.Parse(set.SeatBespeak.ConfirmTime.BeginTime)); DateTime bespeakEndTime = bespeakTime.AddMinutes(double.Parse(set.SeatBespeak.ConfirmTime.EndTime)); return(string.Format("{0}至{1}", bespeakBeginTime.ToShortTimeString(), bespeakEndTime.ToShortTimeString())); }
/// <summary> /// 选座座位 /// </summary> /// <param name="seatBtn"></param> /// <returns></returns> public bool SelectSeat(UsuallySeatUC_ViewModel seatBtn) { ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(seatBtn.ReadingRoomNo); ClientObject.EnterOutLogData.Student.AtReadingRoom = roomInfo;//给读者所在的阅览室赋值。 //验证读者身份是否允许选择该阅览室。 if (!SelectSeatProven.ProvenReaderType(ClientObject.EnterOutLogData.Student, roomInfo.Setting)) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.ReaderTypeInconformity); return(false); } //验证读者黑名单,选座次数。 if (SelectSeatProven.ProvenReaderState(ClientObject.EnterOutLogData.Student, roomInfo, ClientObject.RegulationRulesSet.BlacklistSet, ClientObject.ClientSetting.DeviceSetting)) { //ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = ""; return(false); } SeatLockState lockseat = T_SM_Seat.LockSeat(seatBtn.SeatNo); if (lockseat != SeatLockState.Locked) //座位成功加锁 { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking); return(false); } ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.ShortSeatNo; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = seatBtn.ReadingRoomName; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectSeatConfinmed); if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule != HandleResult.Successed) { T_SM_Seat.UnLockSeat(seatBtn.SeatNo); //确认窗口点击取消或者自动关闭,则解锁。 return(false); } ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = seatBtn.ReadingRoomName; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = seatBtn.ReadingRoomNo; ClientObject.EnterOutLogData.EnterOutlog.SeatNo = seatBtn.SeatNo; ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.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, seatBtn.ShortSeatNo); return(true); }
/// <summary> /// 显示当前读者的详细进出记录 /// </summary> /// <param name="cardNo"></param> private void ShowEnterOutLogMessage(string cardNo) { if (!string.IsNullOrEmpty(cardNo)) { DateTime nowdt = ServiceDateTime.Now; List <EnterOutLogInfo> eollist = readerLogQuery.QueryEnterOugLogs(cardNo, nowdt); //List<BespeakLogInfo> blilist = readerLogQuery.QueryBespeakLogs(cardNo, nowdt); //List<WaitSeatLogInfo> wslilist = readerLogQuery.QueryWaitSeatLogs(cardNo, nowdt); lblCardNo.Text = cardNo; bool flag = false; for (int i = 0; i < eollist.Count; i++) { if (eollist[i].EnterOutType == SeatManage.EnumType.LogStatus.Valid && eollist[i].EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave) { ReadingRoomInfo room = T_SM_ReadingRoom.GetSingleRoomInfo(eollist[i].ReadingRoomNo); lblReadingRoomName.Text = room.Name; lblSeatNo.Text = SeatComm.SeatNoToShortSeatNo(room.Setting.SeatNumAmount, eollist[i].SeatNo); lblNowState.Text = SeatComm.ConvertReaderState(eollist[i].EnterOutState); flag = true; break; } } if (!flag) { lblReadingRoomName.Text = "没有选择座位"; lblNowState.Text = "无座"; lblSeatNo.Text = "无"; } List <Label> labelList = readerLogQuery.GetEnterOutLogLabels(eollist); panel1.Controls.Clear(); for (int i = 0; i < labelList.Count; i++) { panel1.Controls.Add(labelList[i]); } } }
/// <summary> /// 进出记录的消息 /// </summary> /// <param name="log"></param> /// <returns></returns> private string EnterOutLogMessage(EnterOutLogInfo log) { ReadingRoomInfo room = null; try { room = clientObject.ReadingRoomList[log.ReadingRoomNo]; } catch { room = T_SM_ReadingRoom.GetSingleRoomInfo(log.ReadingRoomNo); } string strMessage = ""; if (room != null) { strMessage = string.Format("{0} {1}", log.EnterOutTime.ToLongTimeString(), log.Remark); } else { strMessage = string.Format("{0} {1}", log.EnterOutTime.ToLongTimeString(), log.Remark); } return(strMessage); }
/// <summary> /// 进入阅览室前判断 /// </summary> /// <param name="roomNo"></param> public void EnterReadingRoom(ReadingRoomUC_ViewModel vm_Room) { try { //ClientObject.EnterOutLogData.FlowControl = ClientOperation.Back; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = vm_Room.ReadingRoomNo; ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(vm_Room.ReadingRoomNo); if (vm_Room.Status == ReadingRoomStatus.Close || vm_Room.Status == ReadingRoomStatus.BeforeClose) { ClientObject.EnterOutLogData.Student.AtReadingRoom = roomInfo; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.ReadingRoomClosing); ClientObject.EnterOutLogData.Student.AtReadingRoom = null; return; } if (vm_Room.Usage == ReadingRoomUsingStatus.Full && (!roomInfo.Setting.NoManagement.Used)) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.ReadingRoomFull); return; } ClientObject.EnterOutLogData.Student.AtReadingRoom = roomInfo;//给读者所在的阅览室赋值。 //验证读者身份是否允许选择该阅览室。 if (!SelectSeatProven.ProvenReaderType(ClientObject.EnterOutLogData.Student, roomInfo.Setting)) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.ReaderTypeInconformity); return; } //验证读者黑名单,选座次数。 if (SelectSeatProven.ProvenReaderState(ClientObject.EnterOutLogData.Student, roomInfo, ClientObject.RegulationRulesSet.BlacklistSet, ClientObject.ClientSetting.DeviceSetting)) { ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = ""; return; } //TODO:验证终端选座方式 if (vm_Room.Usage == ReadingRoomUsingStatus.Full && roomInfo.Setting.NoManagement.Used) { ClientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = roomInfo.No; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = roomInfo.Name; //ReadingRoomWindowObject.GetInstance().Window.Hide(); RoomSeatWindowObject.GetInstance(roomInfo.No).Window[roomInfo.No].ShowMessage(); } else { SelectSeatMode selectSeatMethod = SelectSeatProven.ProvenSelectSeatMethod(ClientObject.ClientSetting.DeviceSetting, roomInfo.Setting.SeatChooseMethod); if (selectSeatMethod == SelectSeatMode.OptionalMode || selectSeatMethod == SelectSeatMode.ManualMode) { ClientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = roomInfo.No; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = roomInfo.Name; //ReadingRoomWindowObject.GetInstance().Window.Hide(); RoomSeatWindowObject.GetInstance(roomInfo.No).Window[roomInfo.No].ShowMessage(); } else { ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = roomInfo.No; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = roomInfo.Name; string tempSeatNo = T_SM_Seat.RandomAllotSeat(ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo); if (T_SM_Seat.LockSeat(tempSeatNo) != SeatLockState.Locked)//座位锁定失败,则提示 { ClientObject.EnterOutLogData.EnterOutlog.SeatNo = ""; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking); return; } ClientObject.EnterOutLogData.EnterOutlog.Remark = string.Format("在终端{0}刷卡,自动选择{1} {2}号座位", ClientObject.ClientSetting.ClientNo, ClientObject.EnterOutLogData.Student.AtReadingRoom.Name, tempSeatNo.Substring(tempSeatNo.Length - ClientObject.EnterOutLogData.Student.AtReadingRoom.Setting.SeatNumAmount)); ClientObject.EnterOutLogData.EnterOutlog.SeatNo = tempSeatNo; ClientObject.EnterOutLogData.EnterOutlog.TerminalNum = ClientObject.ClientSetting.ClientNo; ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = SeatComm.SeatNoToShortSeatNo(ClientObject.EnterOutLogData.Student.AtReadingRoom.Setting.SeatNumAmount, ClientObject.EnterOutLogData.EnterOutlog.SeatNo); ClientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; //操作为选择座位 } } //RoomSeatWindowObject.GetInstance(roomInfo.No).Window[roomInfo.No] = null; } catch (Exception ex) { WriteLog.Write("加载阅览室遇到异常" + ex.Message); PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.Exception); } }
protected void Page_Load(object sender, EventArgs e) { if (Session["LoginId"] == null) { Response.Redirect("../Login.aspx"); } if (!IsPostBack) { BindReadingRoomList(Session[CookiesManager.LoginID].ToString()); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } cmd = Request.Form["subCmd"]; if (cmd != null) { #region 座位相关操作 switch (cmd) { case "search": //查询座位 try { GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } catch { } break; case "ShortLeave": //设置暂离 try { string seatStr = hidSeatNo.Value; string[] noArr = seatStr.Split(','); string seatNo = ""; for (int i = 0; i < noArr.Length; i++) { seatNo = noArr[i].Trim(); EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo); if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.ShortLeave) { ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo); enterOutLog.EnterOutState = EnterOutLogType.ShortLeave; enterOutLog.Flag = Operation.Admin; enterOutLog.Remark = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置为暂离", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]); int newId = -1; HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId); if (result == HandleResult.Successed) { Page.RegisterStartupScript("", "<script>alert('设置读者暂离成功');</script>"); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } else { Page.RegisterStartupScript("", "<script>alert('设置读者暂离失败');</script>"); } } } } catch { } break; case "ReleaseShortLeave": //取消暂离 try { string seatStr = hidSeatNo.Value; string[] noArr = seatStr.Split(','); string seatNo = ""; for (int i = 0; i < noArr.Length; i++) { seatNo = noArr[i].Trim(); EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo); if (enterOutLog != null && enterOutLog.EnterOutState == EnterOutLogType.ShortLeave) { ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo); enterOutLog.EnterOutState = EnterOutLogType.ComeBack; enterOutLog.Flag = Operation.Admin; enterOutLog.Remark = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备取消暂离,恢复为在座", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]); int newId = -1; HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId); if (result == HandleResult.Successed) { List <WaitSeatLogInfo> waitSeatLogs = T_SM_SeatWaiting.GetWaitSeatList("", enterOutLog.EnterOutLogID, null, null, null); WaitSeatLogInfo waitSeatLog = null; if (waitSeatLogs.Count > 0) { waitSeatLog = waitSeatLogs[0]; waitSeatLog.NowState = LogStatus.Fail; waitSeatLog.OperateType = Operation.OtherReader; waitSeatLog.WaitingState = EnterOutLogType.WaitingCancel; if (T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog)) { Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功');</script>"); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } else { Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功,取消读者等待失败');</script>"); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } } else { Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功');</script>"); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } } else { Page.RegisterStartupScript("", "<script>alert('取消读者暂离失败');</script>"); } } } } catch { } break; case "Release": //释放座位 try { string seatStr = hidSeatNo.Value; string[] noArr = seatStr.Split(','); string seatNo = ""; for (int i = 0; i < noArr.Length; i++) { seatNo = noArr[i].Trim(); EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo); if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.Leave) { ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo); enterOutLog.EnterOutState = EnterOutLogType.Leave; enterOutLog.Flag = Operation.Admin; enterOutLog.Remark = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]); int newId = -1; HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId); if (result == HandleResult.Successed) { RegulationRulesSetting rulesSet = T_SM_SystemSet.GetRegulationRulesSetting(); if (roomInfo.Setting.IsRecordViolate) { if (roomInfo.Setting.BlackListSetting.Used) { if (roomInfo.Setting.BlackListSetting.ViolateRoule[ViolationRecordsType.LeaveByAdmin]) { ViolationRecordsLogInfo violationRecords = new ViolationRecordsLogInfo(); violationRecords.CardNo = enterOutLog.CardNo; violationRecords.SeatID = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount); violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo; violationRecords.EnterOutTime = ServiceDateTime.Now.ToString(); violationRecords.EnterFlag = ViolationRecordsType.LeaveByAdmin; violationRecords.Remark = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]); violationRecords.BlacklistID = "-1"; T_SM_ViolateDiscipline.AddViolationRecords(violationRecords); } } else if (rulesSet.BlacklistSet.Used && rulesSet.BlacklistSet.ViolateRoule[ViolationRecordsType.LeaveByAdmin]) { ViolationRecordsLogInfo violationRecords = new ViolationRecordsLogInfo(); violationRecords.CardNo = enterOutLog.CardNo; violationRecords.SeatID = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount); violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo; violationRecords.EnterOutTime = ServiceDateTime.Now.ToString(); violationRecords.EnterFlag = ViolationRecordsType.LeaveByAdmin; violationRecords.Remark = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]); violationRecords.BlacklistID = "-1"; T_SM_ViolateDiscipline.AddViolationRecords(violationRecords); } } Page.RegisterStartupScript("", "<script>alert('设置读者离开成功');</script>"); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } else { Page.RegisterStartupScript("", "<script>alert('设置读者离开失败');</script>"); } } } } catch { } break; case "onTime": //计时 try { string seatStr = hidSeatNo.Value; string[] noArr = seatStr.Split(','); string seatNo = ""; for (int i = 0; i < noArr.Length; i++) { seatNo = noArr[i].Trim(); EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo); if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.ShortLeave) { DateTime markTime = ServiceDateTime.Now; EnterOutOperate.UpdateMarkTime(enterOutLog.EnterOutLogID, markTime); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } } } catch { } break; case "offTime": //取消计时 try { string seatStr = hidSeatNo.Value; string[] noArr = seatStr.Split(','); string seatNo = ""; for (int i = 0; i < noArr.Length; i++) { seatNo = noArr[i].Trim(); EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo); if (enterOutLog != null && !string.IsNullOrEmpty(enterOutLog.MarkTime.ToString()) && enterOutLog.MarkTime.CompareTo(DateTime.Parse("1900/1/1")) != 0) { DateTime markTime = DateTime.Parse("1900-1-1"); EnterOutOperate.UpdateMarkTime(enterOutLog.EnterOutLogID, markTime); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } } } catch { } break; case "AddBlacklist": try { string seatStr = hidSeatNo.Value; string[] noArr = seatStr.Split(','); string seatNo = ""; int newId = -1; RegulationRulesSetting rulesSet = T_SM_SystemSet.GetRegulationRulesSetting(); for (int i = 0; i < noArr.Length; i++) { newId = -1; seatNo = noArr[i].Trim(); EnterOutLogInfo enterOutLog = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo); if (enterOutLog != null && enterOutLog.EnterOutState != EnterOutLogType.Leave) { ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo); if (roomInfo != null && roomInfo.Setting.BlackListSetting.Used) { BlackListInfo blacklistModel = new BlackListInfo(); blacklistModel.AddTime = ServiceDateTime.Now; blacklistModel.ReadingRoomID = roomInfo.No; blacklistModel.BlacklistState = LogStatus.Valid; blacklistModel.CardNo = enterOutLog.CardNo; blacklistModel.OutBlacklistMode = roomInfo.Setting.BlackListSetting.LeaveBlacklist; if (blacklistModel.OutBlacklistMode == LeaveBlacklistMode.AutomaticMode) { blacklistModel.ReMark = string.Format("管理员{0}通过手持设备{0}把读者加入黑名单,记录黑名单{1}天", Session["LoginID"], roomInfo.Setting.BlackListSetting.LimitDays); blacklistModel.OutTime = blacklistModel.AddTime.AddDays(roomInfo.Setting.BlackListSetting.LimitDays); } else { blacklistModel.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", Session["LoginID"]); } blacklistModel.ReadingRoomID = roomInfo.No; newId = T_SM_Blacklist.AddBlackList(blacklistModel); } else if (rulesSet.BlacklistSet.Used) { BlackListInfo blacklistModel = new BlackListInfo(); blacklistModel.AddTime = ServiceDateTime.Now; blacklistModel.OutTime = blacklistModel.AddTime.AddDays(rulesSet.BlacklistSet.LimitDays); blacklistModel.BlacklistState = LogStatus.Valid; blacklistModel.CardNo = enterOutLog.CardNo; blacklistModel.OutBlacklistMode = rulesSet.BlacklistSet.LeaveBlacklist; if (blacklistModel.OutBlacklistMode == LeaveBlacklistMode.AutomaticMode) { blacklistModel.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,记录黑名单{1}天", Session["LoginID"], rulesSet.BlacklistSet.LimitDays); blacklistModel.OutTime = blacklistModel.AddTime.AddDays(rulesSet.BlacklistSet.LimitDays); } else { blacklistModel.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", Session["LoginID"]); } blacklistModel.ReadingRoomID = roomInfo.No; newId = T_SM_Blacklist.AddBlackList(blacklistModel); } else { Page.RegisterStartupScript("", "<script>alert('对不起,此阅览室以及图书馆没有启用黑名单功能');</script>"); return; } if (newId > 0) { enterOutLog.EnterOutState = EnterOutLogType.Leave; enterOutLog.Flag = Operation.Admin; enterOutLog.Remark = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"]); HandleResult result = EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId); if (result == HandleResult.Successed) { Page.RegisterStartupScript("", "<script>alert('设置读者黑名单成功');</script>"); GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value); } else { Page.RegisterStartupScript("", "<script>alert('设置读者黑名单失败');</script>"); } } } } } catch { } break; case "LoginOut": HttpCookie aCookie; string cookieName; int limit = Request.Cookies.Count; for (int i = 0; i < limit; i++) { cookieName = Request.Cookies[i].Name; aCookie = new HttpCookie(cookieName); aCookie.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Add(aCookie); } Response.Redirect("../Login.aspx"); break; } #endregion } }
/// <summary> /// 根据阅览室编号获取阅览室信息 /// </summary> /// <param name="roomNum"></param> /// <returns></returns> private ReadingRoomInfo GetSingleRoomInfo(string roomNum) { return(T_SM_ReadingRoom.GetSingleRoomInfo(roomNum)); }
/// <summary> /// 开始计算 /// </summary> private void Statistics() { try { List <ReadingRoomInfo> rooms = T_SM_ReadingRoom.GetReadingRooms(null, null, null); DateTime sdt = SeatUsageDataOperating.GetLastRoomUsageStatisticsDate(); if (sdt <= DateTime.Parse("2000-1-1")) { return; } sdt = sdt.AddDays(1); while (true) { //获取进出记录 List <EnterOutLogInfo> enterOutLogList = T_SM_EnterOutLog_bak.GetStatisticsLogsByDate(sdt); List <BespeakLogInfo> bespeakLogList = T_SM_SeatBespeak.GetBespeakList(null, null, sdt, 0, null); List <ViolationRecordsLogInfo> violationLogList = T_SM_ViolateDiscipline.GetViolationRecords(null, null, sdt.ToShortDateString(), sdt.Date.AddDays(1).AddSeconds(-1).ToString(), LogStatus.None, LogStatus.None); //List<BlackListInfo> blacklistList = T_SM_Blacklist.GetAllBlackListInfo(null, LogStatus.None, sdt.ToShortDateString(), sdt.Date.AddDays(1).AddSeconds(-1).ToString()); if (enterOutLogList.Count <= 0 && bespeakLogList.Count <= 0 && violationLogList.Count <= 0 && sdt >= ServiceDateTime.Now.Date.AddDays(-1)) { break; } Dictionary <string, SeatManage.ClassModel.RoomUsageStatistics> roomDir = rooms.ToDictionary(room => room.No, room => new SeatManage.ClassModel.RoomUsageStatistics()); //基本数据及排序处理 foreach (ReadingRoomInfo room in rooms) { roomDir[room.No].StatisticsDate = sdt; roomDir[room.No].ReadingRoomNo = room.No; roomDir[room.No].SeatAllCount = room.SeatList.Seats.Count; roomDir[room.No].OpenTime = DateTime.Parse(room.Setting.GetRoomOpenTimeByDate(sdt).BeginTime); roomDir[room.No].CloseTime = DateTime.Parse(room.Setting.GetRoomOpenTimeByDate(sdt).EndTime); roomDir[room.No].RoomUsageTime = (int)(roomDir[room.No].CloseTime - roomDir[room.No].OpenTime).TotalMinutes; roomDir[room.No].SeatUsageCount = enterOutLogList.FindAll(u => u.ReadingRoomNo == room.No).GroupBy(u => u.SeatNo).Count(); roomDir[room.No].UsedReaderCount = enterOutLogList.FindAll(u => u.ReadingRoomNo == room.No).GroupBy(u => u.CardNo).Count(); roomDir[room.No].CanBesapeakSeat = room.Setting.SeatBespeak.BespeakArea.BespeakType == BespeakAreaType.Percentage ? (int)room.Setting.SeatBespeak.BespeakArea.Scale * room.SeatList.Seats.Count : room.SeatList.Seats.Count(u => u.Value.CanBeBespeak); roomDir[room.No].BespeakedSeat = bespeakLogList.FindAll(u => u.ReadingRoomNo == room.No).GroupBy(u => u.SeatNo).Count(); } foreach (ViolationRecordsLogInfo vrl in violationLogList) { roomDir[vrl.ReadingRoomID].ViolationRecordCount++; switch (vrl.EnterFlag) { case ViolationRecordsType.BookingTimeOut: roomDir[vrl.ReadingRoomID].VRBookingTimeOut++; break; case ViolationRecordsType.LeaveByAdmin: roomDir[vrl.ReadingRoomID].VRLeaveByAdmin++; break; case ViolationRecordsType.LeaveNotReadCard: roomDir[vrl.ReadingRoomID].VRLeaveNotReadCard++; break; case ViolationRecordsType.SeatOutTime: roomDir[vrl.ReadingRoomID].VRSeatOutTime++; break; case ViolationRecordsType.ShortLeaveByAdminOutTime: roomDir[vrl.ReadingRoomID].VRShortLeaveByAdminOutTime++; break; case ViolationRecordsType.ShortLeaveByReaderOutTime: roomDir[vrl.ReadingRoomID].VRShortLeaveByReaderOutTime++; break; case ViolationRecordsType.ShortLeaveByServiceOutTime: roomDir[vrl.ReadingRoomID].VRShortLeaveByServiceOutTime++; break; case ViolationRecordsType.ShortLeaveOutTime: roomDir[vrl.ReadingRoomID].VRShortLeaveOutTime++; break; } } //预约记录处理 foreach (BespeakLogInfo bli in bespeakLogList) { roomDir[bli.ReadingRoomNo].AllBespeakCount++; if (bli.BsepeakTime.Date == bli.SubmitTime.Date) { switch (bli.BsepeakState) { case BookingStatus.Cencaled: switch (bli.CancelPerson) { case Operation.Admin: case Operation.Reader: roomDir[bli.ReadingRoomNo].NowDayBespeakCancel++; break; case Operation.Service: roomDir[bli.ReadingRoomNo].NowDayBespeakOverTime++; break; } break; case BookingStatus.Confinmed: roomDir[bli.ReadingRoomNo].NowDayBespeakCheck++; break; } roomDir[bli.ReadingRoomNo].NowDayBespeakCount++; } else { switch (bli.BsepeakState) { case BookingStatus.Cencaled: switch (bli.CancelPerson) { case Operation.Admin: case Operation.Reader: roomDir[bli.ReadingRoomNo].BespeakCancel++; break; case Operation.Service: roomDir[bli.ReadingRoomNo].BespeakOverTime++; break; } break; case BookingStatus.Confinmed: roomDir[bli.ReadingRoomNo].BespeakCheck++; break; } roomDir[bli.ReadingRoomNo].BespeakCount++; } } foreach (EnterOutLogInfo eol in enterOutLogList) { //刷卡次数 if (!string.IsNullOrEmpty(eol.TerminalNum) && !(eol.EnterOutState == EnterOutLogType.ContinuedTime && eol.Flag == Operation.Service)) { roomDir[eol.ReadingRoomNo].RushCardOperatingCount++; } //记录类型 switch (eol.EnterOutState) { case EnterOutLogType.BookingConfirmation: roomDir[eol.ReadingRoomNo].CheckBespeakCount++; if (string.IsNullOrEmpty(eol.TerminalNum)) { roomDir[eol.ReadingRoomNo].CkeckBespeakInOtherClient++; } else { roomDir[eol.ReadingRoomNo].CheckBespeakInSeatClient++; } break; case EnterOutLogType.ComeBack: roomDir[eol.ReadingRoomNo].ComeBackCount++; switch (eol.Flag) { case Operation.Admin: roomDir[eol.ReadingRoomNo].ComeBackByAdmin++; break; case Operation.OtherReader: roomDir[eol.ReadingRoomNo].ComeBackByOtherReader++; break; case Operation.Reader: roomDir[eol.ReadingRoomNo].ComeBackByReader++; if (string.IsNullOrEmpty(eol.TerminalNum)) { roomDir[eol.ReadingRoomNo].ComeBackInOtherClient++; } else { roomDir[eol.ReadingRoomNo].ComeBackInSeatClient++; } break; } EnterOutLogInfo slEOL = enterOutLogList.FindLast(u => u.EnterOutState == EnterOutLogType.ShortLeave && u.EnterOutLogNo == eol.EnterOutLogNo && u.EnterOutTime < eol.EnterOutTime); if (slEOL != null) { roomDir[eol.ReadingRoomNo].ShortLeaveTime += (int)(slEOL.EnterOutTime - eol.EnterOutTime).TotalMinutes; } break; case EnterOutLogType.ContinuedTime: roomDir[eol.ReadingRoomNo].ContinueTimeCount++; switch (eol.Flag) { case Operation.Service: roomDir[eol.ReadingRoomNo].ContinueTimeByService++; break; case Operation.Reader: roomDir[eol.ReadingRoomNo].ContinueTimeByReader++; if (string.IsNullOrEmpty(eol.TerminalNum)) { roomDir[eol.ReadingRoomNo].ContinueTimeInOtherClient++; } else { roomDir[eol.ReadingRoomNo].ContinueTimeInSeatClient++; } break; } break; case EnterOutLogType.Leave: roomDir[eol.ReadingRoomNo].LeaveCount++; roomDir[eol.ReadingRoomNo].ReaderUsageCount++; switch (eol.Flag) { case Operation.Service: roomDir[eol.ReadingRoomNo].LeaveByService++; break; case Operation.Admin: roomDir[eol.ReadingRoomNo].LeaveByAdmin++; break; case Operation.Reader: roomDir[eol.ReadingRoomNo].LeaveByReader++; if (string.IsNullOrEmpty(eol.TerminalNum)) { roomDir[eol.ReadingRoomNo].LeaveInOtherClient++; } else { roomDir[eol.ReadingRoomNo].LeaveInSeatClient++; } break; } EnterOutLogInfo enterEOL = enterOutLogList.Find(u => (u.EnterOutState == EnterOutLogType.BookingConfirmation || u.EnterOutState == EnterOutLogType.ReselectSeat || u.EnterOutState == EnterOutLogType.SelectSeat || u.EnterOutState == EnterOutLogType.WaitingSuccess) && u.EnterOutLogNo == eol.EnterOutLogNo); if (enterEOL != null) { roomDir[eol.ReadingRoomNo].SeatUsageTime += (int)(eol.EnterOutTime - enterEOL.EnterOutTime).TotalMinutes; } break; case EnterOutLogType.ReselectSeat: roomDir[eol.ReadingRoomNo].ReselectSeatCount++; if (string.IsNullOrEmpty(eol.TerminalNum)) { roomDir[eol.ReadingRoomNo].ReselectSeatInOtherClient++; } else { roomDir[eol.ReadingRoomNo].ReselectSeatInSeatClient++; } break; case EnterOutLogType.SelectSeat: roomDir[eol.ReadingRoomNo].SelectSeatCount++; switch (eol.Flag) { case Operation.Admin: roomDir[eol.ReadingRoomNo].SelectSeatByAdmin++; break; case Operation.Reader: roomDir[eol.ReadingRoomNo].SelectSeatByReader++; if (string.IsNullOrEmpty(eol.TerminalNum)) { roomDir[eol.ReadingRoomNo].SelectSeatInOtherClient++; } else { roomDir[eol.ReadingRoomNo].SelectSeatInSeatClient++; } break; } break; case EnterOutLogType.ShortLeave: roomDir[eol.ReadingRoomNo].ShortLeaveCount++; switch (eol.Flag) { case Operation.OtherReader: roomDir[eol.ReadingRoomNo].ShortLeaveByOtherReader++; break; case Operation.Service: roomDir[eol.ReadingRoomNo].ShortLeaveByService++; break; case Operation.Admin: roomDir[eol.ReadingRoomNo].ShortLeaveByAdmin++; break; case Operation.Reader: roomDir[eol.ReadingRoomNo].ShortLeaveByReader++; if (string.IsNullOrEmpty(eol.TerminalNum)) { roomDir[eol.ReadingRoomNo].ShortLeaveInOtherClient++; } else { roomDir[eol.ReadingRoomNo].ShortLeaveInSeatClient++; } break; } break; case EnterOutLogType.WaitingSuccess: roomDir[eol.ReadingRoomNo].WaitSeatCount++; break; } } foreach (SeatManage.ClassModel.RoomUsageStatistics roomUS in roomDir.Values.Where(roomUS => !SeatUsageDataOperating.AddRoomUsageStatistics(roomUS))) { WriteLog.Write(string.Format("数据统计服务:添加阅览室:{0} {1} 数据统计出错", roomUS.ReadingRoomNo, roomUS.StatisticsDate)); throw new Exception(string.Format("数据统计服务:添加阅览室:{0} {1} 数据统计出错", roomUS.ReadingRoomNo, roomUS.StatisticsDate)); } sdt = sdt.AddDays(1); if (sdt >= ServiceDateTime.Now.Date) { break; } roomDir = null; } WriteLog.Write("数据统计服务:统计阅览室完成使用情况完成"); } catch (Exception ex) { WriteLog.Write(string.Format("数据统计服务:统计阅览室使用情况失败:{0}", ex.Message)); } }
void BindUIElement(string seatNo, string seatShortNo, DateTime date, string timeSP) { if (!IsPostBack) { T_SM_ReadingRoom bllReadingRoom = new T_SM_ReadingRoom(); bookMode.Items.Add(new ListItem("立即预约", "0")); if (ReadingRoomList[roomNo].Setting.SeatBespeak.SpecifiedTime && ReadingRoomList[roomNo].Setting.SeatBespeak.CanBookMultiSpan) { if (!string.IsNullOrEmpty(timeSP)) { string[] sps = timeSP.Split(';'); foreach (string s in sps) { if (!string.IsNullOrEmpty(s)) { if (DateTime.Parse(s) <= date) { continue; } spanSelect.Items.Add(new ListItem(s, s)); } } } } else { foreach (DateTime dt in ReadingRoomList[roomNo].Setting.SeatBespeak.SpecifiedTimeList) { if (dt <= date) { continue; } spanSelect.Items.Add(new ListItem(dt.ToShortTimeString(), dt.ToShortTimeString())); } } if (ReadingRoomList[roomNo].Setting.SeatBespeak.SpecifiedBespeak && spanSelect.Items.Count > 0) { bookMode.Items.Add(new ListItem("指定时段", "1")); } bookMode.SelectedIndex = 0; DateTime minTime = DateTime.Parse(date.ToShortDateString() + " " + bllReadingRoom.GetRoomOpenTimeByDate(ReadingRoomList[roomNo].Setting, date.ToShortDateString()).BeginTime); if (minTime < DateTime.Now) { minTime = DateTime.Now.AddMinutes(10 - DateTime.Now.Minute % 10); } while (true) { minTime = minTime.AddMinutes(10); if (minTime.Date > date.Date) { break; } if (NowReadingRoomState.ReadingRoomOpenState(ReadingRoomList[roomNo].Setting.RoomOpenSet, minTime) == ReadingRoomStatus.Close) { continue; } timeSelect.Items.Add(new ListItem(minTime.ToShortTimeString(), minTime.ToShortTimeString())); } } timeSelect.Visible = false; timeSelect_sp.Visible = false; spanSelect.Visible = false; spanSelect_sp.Visible = false; if (bookMode.SelectedIndex == 1) { if (ReadingRoomList[roomNo].Setting.SeatBespeak.SpecifiedTime) { spanSelect.Visible = true; spanSelect_sp.Visible = true; } else { timeSelect.Visible = true; timeSelect_sp.Visible = true; } } lblBookDate.InnerText = date.ToShortDateString(); lblSeatNo.InnerText = seatShortNo; lblReadingRoomName.InnerText = ReadingRoomList[roomNo].Name; lblBookTime.InnerText = bespeakSureTime(ReadingRoomList[roomNo].Setting); lbbookspan.InnerText = bespeakSureTimeSpan(ReadingRoomList[roomNo].Setting); 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; //} }
/// <summary> /// 开始计算 /// </summary> private void Statistics() { try { List <ReadingRoomInfo> rooms = T_SM_ReadingRoom.GetReadingRooms(null, null, null); DateTime sdt = SeatUsageDataOperating.GetLastRoomFlowStatisticsDate(); if (sdt <= DateTime.Parse("2000-1-1")) { return; } sdt = sdt.AddDays(1); while (true) { //获取进出记录 List <EnterOutLogInfo> enterOutLogList = T_SM_EnterOutLog_bak.GetStatisticsLogsByDate(sdt); if (enterOutLogList.Count <= 0 && sdt >= ServiceDateTime.Now.Date.AddDays(-1)) { break; } Dictionary <string, SeatManage.ClassModel.RoomFlowStatistics> roomDir = rooms.ToDictionary(room => room.No, room => new SeatManage.ClassModel.RoomFlowStatistics()); //基本数据及排序处理 foreach (ReadingRoomInfo room in rooms) { roomDir[room.No].StatisticsDate = sdt; roomDir[room.No].ReadingRoomNo = room.No; for (int i = 0; i < 24; i++) { roomDir[room.No].BespeakCheckFlowDic.Add(i, 0); roomDir[room.No].ComeBackFlowDic.Add(i, 0); roomDir[room.No].ContinueFlowDic.Add(i, 0); roomDir[room.No].EnterFlowDic.Add(i, 0); roomDir[room.No].LeaveFlowDic.Add(i, 0); roomDir[room.No].OnSeatDic.Add(i, 0); roomDir[room.No].OutFlowDic.Add(i, 0); roomDir[room.No].ReselectFlowDic.Add(i, 0); roomDir[room.No].SelectFlowDic.Add(i, 0); roomDir[room.No].ShortLeaveFlowDic.Add(i, 0); roomDir[room.No].WaitSelectFlowDic.Add(i, 0); } } foreach (EnterOutLogInfo eol in enterOutLogList) { //记录类型 switch (eol.EnterOutState) { case EnterOutLogType.BookingConfirmation: roomDir[eol.ReadingRoomNo].BespeakCheckFlowDic[eol.EnterOutTime.Hour]++; roomDir[eol.ReadingRoomNo].EnterFlowDic[eol.EnterOutTime.Hour]++; break; case EnterOutLogType.ComeBack: roomDir[eol.ReadingRoomNo].ComeBackFlowDic[eol.EnterOutTime.Hour]++; break; case EnterOutLogType.ContinuedTime: roomDir[eol.ReadingRoomNo].ContinueFlowDic[eol.EnterOutTime.Hour]++; break; case EnterOutLogType.Leave: roomDir[eol.ReadingRoomNo].LeaveFlowDic[eol.EnterOutTime.Hour]++; roomDir[eol.ReadingRoomNo].OutFlowDic[eol.EnterOutTime.Hour]++; break; case EnterOutLogType.ReselectSeat: roomDir[eol.ReadingRoomNo].ReselectFlowDic[eol.EnterOutTime.Hour]++; roomDir[eol.ReadingRoomNo].EnterFlowDic[eol.EnterOutTime.Hour]++; break; case EnterOutLogType.SelectSeat: roomDir[eol.ReadingRoomNo].SelectFlowDic[eol.EnterOutTime.Hour]++; roomDir[eol.ReadingRoomNo].EnterFlowDic[eol.EnterOutTime.Hour]++; break; case EnterOutLogType.ShortLeave: roomDir[eol.ReadingRoomNo].ShortLeaveFlowDic[eol.EnterOutTime.Hour]++; break; case EnterOutLogType.WaitingSuccess: roomDir[eol.ReadingRoomNo].WaitSelectFlowDic[eol.EnterOutTime.Hour]++; roomDir[eol.ReadingRoomNo].EnterFlowDic[eol.EnterOutTime.Hour]++; break; } } foreach (SeatManage.ClassModel.RoomFlowStatistics roomFS in roomDir.Values) { foreach (KeyValuePair <int, int> item in roomFS.BespeakCheckFlowDic) { roomFS.BespeakCheckFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.ComeBackFlowDic) { roomFS.ComeBackFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.ContinueFlowDic) { roomFS.ContinueFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.EnterFlowDic) { roomFS.EnterFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.LeaveFlowDic) { roomFS.LeaveFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.OutFlowDic) { roomFS.OutFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.ReselectFlowDic) { roomFS.ReselectFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.SelectFlowDic) { roomFS.SelectFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.ShortLeaveFlowDic) { roomFS.ShortLeaveFlow += item.Key + ":" + item.Value + ";"; } foreach (KeyValuePair <int, int> item in roomFS.WaitSelectFlowDic) { roomFS.WaitSelectFlow += item.Key + ":" + item.Value + ";"; } //计算在座人数 for (int i = 0; i < 24; i++) { roomFS.OnSeatDic[i] = i > 0 ? roomFS.OnSeatDic[i - 1] + roomFS.EnterFlowDic[i] - roomFS.OutFlowDic[i] : roomFS.EnterFlowDic[i] - roomFS.OutFlowDic[i]; } foreach (KeyValuePair <int, int> item in roomFS.OnSeatDic) { roomFS.OnSeat += item.Key + ":" + item.Value + ";"; } if (!SeatUsageDataOperating.AddRoomFlowStatistics(roomFS)) { WriteLog.Write(string.Format("数据统计服务:添加阅览室:{0} {1} 人流量统计出错", roomFS.ReadingRoomNo, roomFS.StatisticsDate)); throw new Exception(string.Format("数据统计服务:添加阅览室:{0} {1} 人流量统计出错", roomFS.ReadingRoomNo, roomFS.StatisticsDate)); } } sdt = sdt.AddDays(1); if (sdt >= ServiceDateTime.Now.Date) { break; } roomDir = null; } WriteLog.Write("数据统计服务:统计阅览室完成人流量完成"); } catch (Exception ex) { WriteLog.Write(string.Format("数据统计服务:统计阅览室人流量失败:{0}", ex.Message)); } }
/// <summary> /// Ñ¡Ôñ×ùλ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void roomButton_Click(object sender, EventArgs e) { SeatManage.MyUserControl.ReadingRoomButton room = sender as ReadingRoomButton; this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = room.RoomNum; ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(room.RoomNum); if (room.SeatUsingStatus == ReadingRoomUsingStatus.Full && (!roomInfo.Setting.NoManagement.Used)) { Tip_Framework tipForm = new Tip_Framework(TipType.ReadingRoomFull, 9); formClose.Pause(); tipForm.ShowDialog(); formClose.Start(); return; } clientObject.EnterOutLogData.Student.AtReadingRoom = roomInfo;//¸ø¶ÁÕßËùÔÚµÄÔÄÀÀÊÒ¸³Öµ¡£ //ÑéÖ¤¶ÁÕßÉí·ÝÊÇ·ñÔÊÐíÑ¡Ôñ¸ÃÔÄÀÀÊÒ¡£ if (!SelectSeatProven.ProvenReaderType(clientObject.EnterOutLogData.Student, roomInfo.Setting)) { Tip_Framework tipForm = new Tip_Framework(TipType.ReaderTypeInconformity, 9); formClose.Pause(); tipForm.ShowDialog(); formClose.Start(); return; } //ÑéÖ¤¶ÁÕߺÚÃûµ¥£¬Ñ¡×ù´ÎÊý¡£ if (SelectSeatProven.ProvenReaderState(clientObject.EnterOutLogData.Student, roomInfo, clientObject.RegulationRulesSet.BlacklistSet, clientObject.ClientSetting.DeviceSetting)) { this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = ""; return; } //TODO:ÑéÖ¤ÖÕ¶ËÑ¡×ù·½Ê½ if (room.SeatUsingStatus == ReadingRoomUsingStatus.Full && roomInfo.Setting.NoManagement.Used) { this._RoomSelectSeatMethod = SelectSeatMode.ManualMode; this.clientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = room.RoomNum; this.Close(); } else { SelectSeatMode selectSeatMethod = SelectSeatProven.ProvenSelectSeatMethod(clientObject.ClientSetting.DeviceSetting, roomInfo.Setting.SeatChooseMethod); if (selectSeatMethod == SelectSeatMode.OptionalMode) { ChooseSeatState frmChooseSeatState = new ChooseSeatState(); frmChooseSeatState.ShowDialog(); _RoomSelectSeatMethod = frmChooseSeatState.RoomSelectSeatMethod; if (frmChooseSeatState.RoomSelectSeatMethod != SelectSeatMode.None) { this.clientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = room.RoomNum; this.Close(); } else { this.clientObject.EnterOutLogData.FlowControl = ClientOperation.None; this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = ""; } } else { this._RoomSelectSeatMethod = selectSeatMethod; this.clientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; this.clientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = room.RoomNum; this.Close(); } } }