/// <summary> /// 增加开闭馆记录 /// </summary> /// <param name="model">开闭馆记录</param> /// <param name="new_id">返回的新的记录id</param> /// <returns></returns> public static int AddNewReadingRoomOClog(ReadingRoomOpenCloseLogInfo model, ref int new_id) { IWCFService.ISeatManageService seatService = WcfAccessProxy.ServiceProxy.CreateChannelSeatManageService(); bool error = false; try { return(seatService.AddReadingRoomOClog(model, ref new_id)); } catch (Exception ex) { error = true; SeatManageComm.WriteLog.Write("添加开闭馆计划失败:" + ex.Message); return(-1); } finally { ICommunicationObject ICommObjectService = seatService as ICommunicationObject; try { if (ICommObjectService.State == CommunicationState.Faulted) { ICommObjectService.Abort(); } else { ICommObjectService.Close(); } } catch { ICommObjectService.Abort(); } } }
/// <summary> /// 增加开闭馆记录 /// </summary> /// <param name="model">开闭馆记录</param> /// <returns></returns> public int AddReadingRoomOClog(ReadingRoomOpenCloseLogInfo model, ref int newid) { try { return(t_sm_rropencloselog.Add(model, ref newid)); } catch { throw; } }
private ReadingRoomOpenCloseLogInfo DataRowToReadingRoomOpenCloseLogInfo(DataRow dr) { //id,ReadingRoomNo,OperateTime,OperateNo,OpenCloseState,OpenCloseType ReadingRoomOpenCloseLogInfo model = new ReadingRoomOpenCloseLogInfo(); model.ID = dr["id"].ToString(); model.ReadingRoomNo = dr["ReadingRoomNo"].ToString(); model.OperateNo = dr["OperateNo"].ToString(); model.OperateTime = DateTime.Parse(dr["OperateTime"].ToString()); model.OpenCloseState = (ReadingRoomStatus)int.Parse(dr["OpenCloseState"].ToString()); model.Logstatus = (LogStatus)int.Parse(dr["OpenCloseType"].ToString()); return(model); }
/// <summary> /// 增加开闭馆记录 /// </summary> /// <param name="model">开闭馆记录</param> /// <param name="new_id">返回的新的记录id</param> /// <returns></returns> public static int AddNewReadingRoomOClog(ReadingRoomOpenCloseLogInfo model, ref int new_id) { IWCFService.ISeatManageService seatService = new WcfServiceForSeatManage.SeatManageDateService(); bool error = false; try { return(seatService.AddReadingRoomOClog(model, ref new_id)); } catch (Exception ex) { error = true; SeatManageComm.WriteLog.Write("添加开闭馆计划失败:" + ex.Message); return(-1); } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(ReadingRoomOpenCloseLogInfo model, ref int newLogId) { //TODO:不跟据阅览室状态添加进出记录 SqlParameter[] parameters = new SqlParameter[8]; parameters[0] = new SqlParameter("@ExcResult", SqlDbType.Int); parameters[0].Direction = ParameterDirection.Output; parameters[1] = new SqlParameter("@id", model.ID); parameters[2] = new SqlParameter("@ReadingRoomNo", model.ReadingRoomNo); parameters[3] = new SqlParameter("@OperateTime", model.OperateTime); parameters[4] = new SqlParameter("@OperateNo", model.OperateNo); parameters[5] = new SqlParameter("@OpenCloseState", (int)model.OpenCloseState); parameters[6] = new SqlParameter("@OpenCloseType", (int)model.Logstatus); parameters[7] = new SqlParameter("RETURN_VALUE", SqlDbType.Int); parameters[7].Direction = ParameterDirection.ReturnValue; DbHelperSQL.Execute_Proc("Proc_AddRROpenCloseLog", parameters); string id = parameters[7].Value.ToString(); if (!string.IsNullOrEmpty(id)) { newLogId = int.Parse(id); } return((int)parameters[0].Value); }
/// <summary> /// 执行阅览室开闭馆处理 /// </summary> /// <param name="RoomsStatus">阅览室状态</param> public void OpenCloseReadingRoom() { try { DateTime nowDateTime = ServiceDateTime.Now; List <ReadingRoomOpenCloseLogInfo> rrocList = T_SM_RROpenCloseLog.GetReadingRoomOClog(null, LogStatus.Valid, null, null); //遍历所有阅览室 foreach (ReadingRoomInfo rri in roomList.Values.Where(rri => rri.Setting != null)) { //获取阅览室状态 ReadingRoomOpenCloseLogInfo rroc = rrocList.OrderByDescending(u => u.OperateTime).ToList().Find(u => u.ReadingRoomNo == rri.No); if (rroc == null) { rroc = new ReadingRoomOpenCloseLogInfo(); rroc.OpenCloseState = ReadingRoomStatus.Close; rroc.ReadingRoomNo = rri.No; rroc.OperateNo = SeatComm.RndNum(); rroc.OperateTime = nowDateTime; rroc.Logstatus = LogStatus.Valid; } int new_id = 0; //如果启用24小时模式 if (rri.Setting.RoomOpenSet.UninterruptibleModel) { if (rroc.OpenCloseState == ReadingRoomStatus.Close) { rroc.OpenCloseState = ReadingRoomStatus.Open; rroc.OperateTime = nowDateTime; T_SM_RROpenCloseLog.AddNewReadingRoomOClog(rroc, ref new_id); WriteLog.Write(string.Format("监控服务:{0},开启", rri.Name)); } continue; } ReadingRoomStatus nowState = rri.Setting.ReadingRoomOpenState(nowDateTime); //判断状态 if (rroc.OpenCloseState == nowState) { continue; } switch (nowState) { case ReadingRoomStatus.Open: rroc.OpenCloseState = ReadingRoomStatus.Open; rroc.OperateTime = ServiceDateTime.Now; rroc.OperateNo = SeatComm.RndNum(); T_SM_RROpenCloseLog.AddNewReadingRoomOClog(rroc, ref new_id); WriteLog.Write(string.Format("监控服务:{0},开启", rri.Name)); break; case ReadingRoomStatus.Close: CloseReadingRoom(rri); rroc.OpenCloseState = ReadingRoomStatus.Close; rroc.OperateTime = ServiceDateTime.Now; T_SM_RROpenCloseLog.AddNewReadingRoomOClog(rroc, ref new_id); WriteLog.Write(string.Format("监控服务:{0},关闭", rri.Name)); break; } } } catch (Exception ex) { WriteLog.Write(string.Format("监控服务:执行阅览室开闭馆处理遇到错误:{0}", ex.Message)); } }