/// <summary> /// 获取所有阅览室的座位使用状态 /// </summary> /// <param name="school"></param> /// <returns></returns> public Dictionary <string, ReadingRoomSeatUsedState_Ex> GetAllRoomSeatUsedState() { try { Dictionary <string, ReadingRoomSeatUsedState_Ex> roomStatusEx = new Dictionary <string, ReadingRoomSeatUsedState_Ex>(); List <SeatManage.ClassModel.ReadingRoomInfo> rooms = seatManage.GetReadingRoomInfo(null); List <string> roomNums = new List <string>(); foreach (SeatManage.ClassModel.ReadingRoomInfo room in rooms) { roomNums.Add(room.No); } Dictionary <string, ReadingRoomSeatUsedState> roomsUsedState = seatManage.GetRoomSeatUsedState(roomNums); foreach (SeatManage.ClassModel.ReadingRoomInfo room in rooms) { ReadingRoomSeatUsedState_Ex roomSeatState = new ReadingRoomSeatUsedState_Ex(); roomSeatState.ReadingRoom = room; roomSeatState.PersonTimes = roomsUsedState[room.No].PersonTimes; roomSeatState.SeatAmountAll = roomsUsedState[room.No].SeatAmountAll; roomSeatState.SeatAmountShortLeave = roomsUsedState[room.No].SeatAmountShortLeave; roomSeatState.SeatAmountUsed = roomsUsedState[room.No].SeatAmountUsed; roomStatusEx.Add(room.No, roomSeatState); } return(roomStatusEx); } catch (Exception ex) { throw new Exception("获取阅览室座位使用情况失败" + ex.Message); } }
/// <summary> /// 获取剩余的座位 /// </summary> /// <param name="roomList"></param> /// <returns></returns> public Dictionary <string, ReadingRoomSeatUsedState_Ex> GetTeminaRoomStatus(List <string> roomNums) { List <ReadingRoomInfo> rooms = GetReadingRoomInfo(roomNums); List <EnterOutLogInfo> roomEnterOutLoglist = GetRoomUsingSeatEnterOutLogInfo(roomNums); List <BespeakLogInfo> roomBespeakLogs = GetBespeakLogInfoByRoomsNum(roomNums, GetServerDateTime()); Dictionary <string, ReadingRoomSeatUsedState_Ex> list = new Dictionary <string, ReadingRoomSeatUsedState_Ex>(); for (int i = 0; i < rooms.Count; i++) { ReadingRoomSeatUsedState_Ex usedState = new ReadingRoomSeatUsedState_Ex(); usedState.ReadingRoom = rooms[i]; usedState.SeatAmountAll = rooms[i].SeatList.Seats.Count(u => u.Value.IsSuspended != true); List <EnterOutLogInfo> enterOutLoglist = roomEnterOutLoglist.FindAll(u => u.ReadingRoomNo == rooms[i].No); List <BespeakLogInfo> bespeakLogs = roomBespeakLogs.FindAll(u => u.ReadingRoomNo == rooms[i].No); usedState.SeatAmountShortLeave = enterOutLoglist.Count(u => u.EnterOutState == SeatManage.EnumType.EnterOutLogType.ShortLeave); for (int j = 0; j < enterOutLoglist.Count; j++) { if (bespeakLogs.Find(u => u.SeatNo == enterOutLoglist[j].SeatNo) != null) { usedState.SeatTemUseCount += 1; break; } } usedState.SeatBookingCount = bespeakLogs.Count; usedState.SeatAmountUsed = enterOutLoglist.Count; list.Add(rooms[i].No, usedState); } return(list); }
/// <summary> /// 获取多个阅览室座位使用状态V3 /// </summary> /// <param name="roomNums">阅览室编号列表</param> /// <param name="date"></param> /// <returns></returns> public Dictionary <string, ReadingRoomSeatUsedState> GetRoomSeatUsedStateV3(List <string> roomNums) { Dictionary <string, ReadingRoomSeatUsedState> stateList = new Dictionary <string, ReadingRoomSeatUsedState>(); List <ReadingRoomInfo> readingRooms = new List <ReadingRoomInfo>(); try { if (roomNums != null && roomNums.Count > 0) { for (int i = 0; i < roomNums.Count; i++) { StringBuilder strWhere = new StringBuilder(); strWhere.Append(string.Format(" ReadingRoomNo = '{0}'", roomNums[i])); DataSet ds = viewReadingRoomState_DAL.GetList(strWhere.ToString(), null); if (ds.Tables[0].Rows.Count > 0) { ReadingRoomSeatUsedState_Ex roomState = DataRowToReadingRoomSeatUsedState(ds.Tables[0].Rows[0]); ReadingRoomSeatUsedState state = new ReadingRoomSeatUsedState(); state.SeatAmountAll = roomState.ReadingRoom.SeatList.Seats.Count(u => u.Value.IsSuspended != true); state.SeatAmountUsed = roomState.SeatAmountUsed; state.SeatBookingCount = roomState.SeatBookingCount; stateList.Add(roomState.ReadingRoom.No, state); } } } else { DataSet ds = viewReadingRoomState_DAL.GetList("", null); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { ReadingRoomSeatUsedState_Ex roomState = DataRowToReadingRoomSeatUsedState(ds.Tables[0].Rows[i]); ReadingRoomSeatUsedState state = new ReadingRoomSeatUsedState(); state.SeatAmountAll = roomState.ReadingRoom.SeatList.Seats.Count(u => u.Value.IsSuspended != true); state.SeatAmountUsed = roomState.SeatAmountUsed; state.SeatBookingCount = roomState.SeatBookingCount; stateList.Add(roomState.ReadingRoom.No, state); } } } catch (Exception ex) { throw new Exception(string.Format("获取阅览室信息失败:{0}", ex.Message)); } return(stateList); }
private ReadingRoomSeatUsedState_Ex DataRowToReadingRoomSeatUsedState(DataRow dr) { ReadingRoomSeatUsedState_Ex state = new ReadingRoomSeatUsedState_Ex(); state.ReadingRoom = new ReadingRoomInfo(); state.ReadingRoom.No = dr["ReadingRoomNo"].ToString(); state.ReadingRoom.Name = dr["ReadingRoomName"].ToString(); if (!String.IsNullOrEmpty(dr["ReadingSetting"].ToString())) { state.ReadingRoom.Setting = new ReadingRoomSetting(dr["ReadingSetting"].ToString()); } else { state.ReadingRoom.Setting = new ReadingRoomSetting(); } if (!string.IsNullOrEmpty(dr["RoomSeat"].ToString())) { state.ReadingRoom.SeatList = SeatLayout.GetSeatLayout(dr["RoomSeat"].ToString()); } else { state.ReadingRoom.SeatList = new SeatLayout(); } state.ReadingRoom.Libaray.No = dr["LibraryNo"].ToString(); state.ReadingRoom.Libaray.Name = dr["LibraryName"].ToString(); state.ReadingRoom.Libaray.School.No = dr["SchoolNo"].ToString(); state.ReadingRoom.Libaray.School.Name = dr["SchoolName"].ToString(); state.ReadingRoom.Libaray.AreaList = state.ReadingRoom.Libaray.ToList(dr["AreaInfo"].ToString()); if (dr["AreaName"] != null && !string.IsNullOrEmpty(dr["AreaName"].ToString())) { foreach (AreaInfo item in state.ReadingRoom.Libaray.AreaList) { if (dr["AreaName"].ToString() == item.AreaName) { state.ReadingRoom.Area = item; break; } } } state.SeatAmountUsed = int.Parse(dr["UsingCount"].ToString()); state.SeatBookingCount = int.Parse(dr["BespeakCount"].ToString()); return(state); }