Esempio n. 1
0
 /// <summary>
 /// 添加违规记录
 /// </summary>
 /// <param name="eol">进出记录</param>
 /// <param name="type">违规类型</param>
 /// <param name="note">提示信息</param>
 private void AddViolationRecordByEnterOutLog(EnterOutLogInfo eol, ViolationRecordsType type, string note, ReadingRoomSetting roomSetting, DateTime nowDateTime)
 {
     try
     {
         if (roomSetting.BlackListSetting.Used && !roomSetting.BlackListSetting.ViolateRoule[type])
         {
             return;
         }
         if (!regulationRulesSetting.BlacklistSet.Used || !regulationRulesSetting.BlacklistSet.ViolateRoule[type])
         {
             return;
         }
         ViolationRecordsLogInfo vrli = new ViolationRecordsLogInfo();
         vrli.CardNo = eol.CardNo;
         vrli.SeatID = eol.SeatNo;
         if (vrli.SeatID.Length > roomSetting.SeatNumAmount)
         {
             vrli.SeatID = vrli.SeatID.Substring(vrli.SeatID.Length - roomSetting.SeatNumAmount);
         }
         vrli.ReadingRoomID = eol.ReadingRoomNo;
         vrli.EnterOutTime  = nowDateTime.ToString();
         vrli.EnterFlag     = type;
         vrli.Remark        = note;
         seatManageService.AddViolationRecordsLog(vrli);
         WriteLog.Write(string.Format("监控服务:读者{0},{1},记录违规", vrli.CardNo, vrli.Remark));
     }
     catch (Exception ex)
     {
         WriteLog.Write(string.Format("监控服务:添加违规记录发生错误:" + ex.Message));
     }
 }
        /// <summary>
        /// 暂离超时操作
        /// </summary>
        /// <param name="enterOutlog">进出记录</param>
        /// <param name="roomset">阅览室设置</param>
        private void ShortLeaveOverTimeOperator(EnterOutLogInfo enterOutlog, ReadingRoomSetting readingRoomSetting, DateTime nowDateTime)
        {
            try
            {
                string vrremark             = "";
                ViolationRecordsType vrtypt = ViolationRecordsType.ShortLeaveOutTime;
                enterOutlog.EnterOutTime  = nowDateTime;
                enterOutlog.EnterOutState = EnterOutLogType.Leave;
                switch (enterOutlog.Flag)
                {//TODO:记录管理员信息
                case Operation.Admin:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,被管理员设置暂离,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,被管理员设置暂离,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveByAdminOutTime;
                    break;

                case Operation.OtherReader:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,被其他读者设置暂离,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,被其他读者设置暂离,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveByReaderOutTime;
                    break;

                case Operation.Reader:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveOutTime;
                    break;

                case Operation.Service:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,在座超时,监控服务设置暂离,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,在座超时,监控服务设置暂离,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.SeatOutTime;
                    break;

                default:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveOutTime;
                    break;
                }

                enterOutlog.Flag = Operation.Service;
                int logid = 0;
                seatManageService.AddEnterOutLogInfo(enterOutlog, ref logid);
                WriteLog.Write(string.Format("读者{0},{1}", enterOutlog.CardNo, enterOutlog.Remark));
                if (readingRoomSetting.IsRecordViolate)
                {
                    AddViolationRecordByEnterOutLog(enterOutlog, vrtypt, vrremark, readingRoomSetting, nowDateTime);
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write(string.Format("监控服务:处理读者暂离超时发生错误:" + ex.Message));
            }
        }
Esempio n. 3
0
        public JsonResult SaveNewViolate()
        {
            JsonResult result = null;

            SeatManage.ClassModel.RegulationRulesSetting regulationRulesSetting = T_SM_SystemSet.GetRegulationRulesSetting();
            string CardNo       = Request.Params["txtNum"].Trim();
            string SeatNo       = Request.Params["txtSeat"].Trim();
            string seatnoremark = "";

            if (!string.IsNullOrEmpty(SeatNo))
            {
                seatnoremark = SeatNo + "号座位,";
            }
            string Remark                 = Request.Params["txtRemark"].Trim();   // txtRemark.Text;
            ViolationRecordsType Type     = (ViolationRecordsType)int.Parse(Request.Params["selectVrType"].Trim());
            string          ReadingRoomNo = Request.Params["selectRooms"].Trim(); //ddlroom.SelectedValue;
            ReadingRoomInfo room          = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(ReadingRoomNo);

            if (room.Setting.IsRecordViolate)
            {
                ViolationRecordsLogInfo vrli = new ViolationRecordsLogInfo();
                vrli.CardNo        = CardNo;
                vrli.SeatID        = SeatNo;
                vrli.ReadingRoomID = ReadingRoomNo;
                vrli.EnterOutTime  = ServiceDateTime.Now.ToString();
                vrli.EnterFlag     = Type;
                vrli.Remark        = string.Format("在{0},{1}被管理员{2},手动记录违规,备注{3}", room.Name, seatnoremark, this.LoginId, Remark);
                if (T_SM_ViolateDiscipline.AddViolationRecords(vrli))
                {
                    result = Json(new { status = "yes", message = "添加成功" }, JsonRequestBehavior.AllowGet);
                }
                else
                {
                    result = Json(new { status = "no", message = "添加失败" }, JsonRequestBehavior.AllowGet);
                    //  FineUI.Alert.Show("添加失败!");
                }
            }
            return(result);
        }
Esempio n. 4
0
        /// <summary>
        /// 保存设置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            SeatManage.ClassModel.RegulationRulesSetting regulationRulesSetting = T_SM_SystemSet.GetRegulationRulesSetting();
            string CardNo       = txtCardno.Text;
            string SeatNo       = txtseatno.Text;
            string seatnoremark = "";

            if (!string.IsNullOrEmpty(SeatNo))
            {
                seatnoremark = SeatNo + "号座位,";
            }
            string Remark                 = txtRemark.Text;
            ViolationRecordsType Type     = (ViolationRecordsType)int.Parse(ddltype.SelectedValue);
            string          ReadingRoomNo = ddlroom.SelectedValue;
            ReadingRoomInfo room          = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(ReadingRoomNo);

            if (room.Setting.IsRecordViolate)
            {
                ViolationRecordsLogInfo vrli = new ViolationRecordsLogInfo();
                vrli.CardNo        = CardNo;
                vrli.SeatID        = SeatNo;
                vrli.ReadingRoomID = ReadingRoomNo;
                vrli.EnterOutTime  = ServiceDateTime.Now.ToString();
                vrli.EnterFlag     = Type;
                vrli.Remark        = string.Format("在{0},{1}被管理员{2},手动记录违规,备注{3}", room.Name, seatnoremark, this.LoginId, Remark);
                if (T_SM_ViolateDiscipline.AddViolationRecords(vrli))
                {
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                    FineUI.Alert.Show("添加成功!");
                }
                else
                {
                    FineUI.Alert.Show("添加失败!");
                }
            }
        }
        /// <summary>
        /// 根据条件、学号模糊查询违规记录
        /// </summary>
        /// <param name="cardNo"></param>
        /// <param name="roonNum"></param>
        /// <param name="beginDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        public List <ViolationRecordsLogInfo> GetViolationRecordsLogsByType_ByFuzzySearch(string cardNo, string roomNums, string beginDate, string endDate, LogStatus logstatus, LogStatus blackliststatus, ViolationRecordsType vrtype)
        {
            StringBuilder strWhere = new StringBuilder();

            if (((int)logstatus) > -1)
            {
                strWhere.Append(string.Format(" Flag = '{0}'", (int)logstatus));
            }
            if (((int)blackliststatus) > -1)
            {
                if (blackliststatus == LogStatus.Valid)
                {
                    if (string.IsNullOrEmpty(strWhere.ToString()))
                    {
                        strWhere.Append(" BlacklistID > -1");
                    }
                    else
                    {
                        strWhere.Append(" and BlacklistID > -1");
                    }
                }
                else if (blackliststatus == LogStatus.Fail)
                {
                    if (string.IsNullOrEmpty(strWhere.ToString()))
                    {
                        strWhere.Append(" BlacklistID = -1");
                    }
                    else
                    {
                        strWhere.Append(" and BlacklistID = -1");
                    }
                }
            }
            if (!string.IsNullOrEmpty(cardNo))
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" CardNo like '%{0}%'", cardNo));
                }
                else
                {
                    strWhere.Append(string.Format(" and CardNo like '%{0}%'", cardNo));
                }
            }
            if (!string.IsNullOrEmpty(roomNums))
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" ReadingRoomNo = '{0}'", roomNums));
                }
                else
                {
                    strWhere.Append(string.Format(" and ReadingRoomNo = '{0}'", roomNums));
                }
            }
            if (!string.IsNullOrEmpty(beginDate))
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" EnterOutTime >= '{0}'", beginDate));
                }
                else
                {
                    strWhere.Append(string.Format(" and EnterOutTime >= '{0}'", beginDate));
                }
            }
            if (!string.IsNullOrEmpty(endDate))
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" EnterOutTime <= '{0}'", endDate));
                }
                else
                {
                    strWhere.Append(string.Format(" and EnterOutTime <= '{0}'", endDate));
                }
            }
            if (vrtype != SeatManage.EnumType.ViolationRecordsType.None)
            {
                if (string.IsNullOrEmpty(strWhere.ToString()))
                {
                    strWhere.Append(string.Format(" EnterFlag = '{0}'", (int)vrtype));
                }
                else
                {
                    strWhere.Append(string.Format(" and EnterFlag = '{0}'", (int)vrtype));
                }
            }
            DataSet ds = violateDiscipline.GetList(strWhere.ToString(), null);
            List <ViolationRecordsLogInfo> vrloglist = new List <ViolationRecordsLogInfo>();

            if (ds.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    vrloglist.Add(DataRowToViolationRecordsLogInfo(ds.Tables[0].Rows[i]));
                }
            }
            return(vrloglist);
        }
Esempio n. 6
0
        /// <summary>
        /// 通过学号模糊查询,获取违规记录
        /// </summary>
        /// <returns></returns>
        public static List <ViolationRecordsLogInfo> GetViolationRecords_ByFuzzySearch(string cardNo, string roomNums, string beginDate, string endDate, LogStatus logstatus, LogStatus blackliststatus, ViolationRecordsType vrtype)
        {
            IWCFService.ISeatManageService seatService = WcfAccessProxy.ServiceProxy.CreateChannelSeatManageService();
            bool error = false;

            try
            {
                return(seatService.GetViolationRecordsLogsByType_ByFuzzySearch(cardNo, roomNums, beginDate, endDate, logstatus, blackliststatus, vrtype));
            }
            catch (Exception ex)
            {
                error = true;
                SeatManageComm.WriteLog.Write("获取违规记录失败:" + ex.Message);
                return(new List <ViolationRecordsLogInfo>());
            }
            finally
            {
                ICommunicationObject ICommObjectService = seatService as ICommunicationObject;
                try
                {
                    if (ICommObjectService.State == CommunicationState.Faulted)
                    {
                        ICommObjectService.Abort();
                    }
                    else
                    {
                        ICommObjectService.Close();
                    }
                }
                catch
                {
                    ICommObjectService.Abort();
                }
            }
        }
        /// <summary>
        /// 暂离超时操作
        /// </summary>
        /// <param name="enterOutlog">进出记录</param>
        /// <param name="roomset">阅览室设置</param>
        private static void ShortLeaveOverTimeOperator(EnterOutLogInfo enterOutlog, ReadingRoomSetting readingRoomSetting, DateTime nowDateTime)
        {
            try
            {
                string vrremark             = "";
                ViolationRecordsType vrtypt = ViolationRecordsType.ShortLeaveOutTime;
                enterOutlog.EnterOutTime  = nowDateTime;
                enterOutlog.EnterOutState = EnterOutLogType.Leave;
                switch (enterOutlog.Flag)
                {//TODO:记录管理员信息
                case Operation.Admin:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,被管理员设置暂离,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,被管理员设置暂离,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveByAdminOutTime;
                    break;

                case Operation.OtherReader:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,被其他读者设置暂离,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,被其他读者设置暂离,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveByReaderOutTime;
                    break;

                case Operation.Reader:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveOutTime;
                    break;

                case Operation.Service:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,在座超时,监控服务设置暂离,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,在座超时,监控服务设置暂离,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.SeatOutTime;
                    break;

                default:
                    enterOutlog.Remark = string.Format("在{0},{1}号座位,暂离超时,被监控服务释放座位", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrremark           = string.Format("读者在{0},{1}号座位,暂离超时", enterOutlog.ReadingRoomName, enterOutlog.SeatNo.Substring(enterOutlog.SeatNo.Length - readingRoomSetting.SeatNumAmount));
                    vrtypt             = ViolationRecordsType.ShortLeaveOutTime;
                    break;
                }
                //ReaderNoticeInfo notice = new ReaderNoticeInfo();
                //notice.CardNo = enterOutlog.CardNo;
                //if (enterOutlog.Flag == Operation.Service)//暂离记录为监控服务操作。
                //{
                //    notice.Type = NoticeType.SeatUsedTimeEnd;
                //    notice.Note = "在座超时,座位已经被释放,如果还需继续使用座位,请重新选座";
                //}
                //else
                //{
                //    notice.Type = NoticeType.SeatUsedTimeEnd;
                //    notice.Note = "暂离超时,座位已经被释放,如果还需继续使用座位,请重新选座";
                //}
                //T_SM_ReaderNotice.AddReaderNotice(notice);


                //PushMsgInfo msg = new PushMsgInfo();
                //msg.Title = "您好,您的座位已被释放";
                //msg.MsgType = MsgPushType.TimeOut;
                //msg.StudentNum = enterOutlog.CardNo;
                //msg.Message = enterOutlog.Remark;
                //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);


                enterOutlog.Flag = Operation.Service;
                int logid = 0;
                EnterOutOperate.AddEnterOutLog(enterOutlog, ref logid);
                WriteLog.Write(string.Format("读者{0},{1}", enterOutlog.CardNo, enterOutlog.Remark));
                if (readingRoomSetting.IsRecordViolate)
                {
                    AddViolationRecordByEnterOutLog(enterOutlog, vrtypt, vrremark, readingRoomSetting, nowDateTime);
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write(string.Format("监控服务:处理读者暂离超时发生错误:" + ex.Message));
            }
        }
        /// <summary>
        /// 通过学号模糊查询,获取违规记录
        /// </summary>
        /// <returns></returns>
        public static List <ViolationRecordsLogInfo> GetViolationRecords_ByFuzzySearch(string cardNo, string roomNums, string beginDate, string endDate, LogStatus logstatus, LogStatus blackliststatus, ViolationRecordsType vrtype)
        {
            IWCFService.ISeatManageService seatService = new WcfServiceForSeatManage.SeatManageDateService();
            bool error = false;

            try
            {
                return(seatService.GetViolationRecordsLogsByType_ByFuzzySearch(cardNo, roomNums, beginDate, endDate, logstatus, blackliststatus, vrtype));
            }
            catch (Exception ex)
            {
                error = true;
                SeatManageComm.WriteLog.Write("获取违规记录失败:" + ex.Message);
                return(new List <ViolationRecordsLogInfo>());
            }
        }