コード例 #1
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(AMS.Model.SMS_SeatUsage model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update SMS_SeatUsage set ");
            strSql.Append("SchoolID=@SchoolID,");
            strSql.Append("UploadDate=@UploadDate,");
            strSql.Append("SeatUsageXml=@SeatUsageXml");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SchoolID",     SqlDbType.Int,       4),
                new SqlParameter("@UploadDate",   SqlDbType.DateTime),
                new SqlParameter("@SeatUsageXml", SqlDbType.Text),
                new SqlParameter("@ID",           SqlDbType.Int, 4)
            };
            parameters[0].Value = model.SchoolID;
            parameters[1].Value = model.UploadDate;
            parameters[2].Value = model.ToXml();
            parameters[3].Value = model.ID;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(AMS.Model.SMS_SeatUsage model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into SMS_SeatUsage(");
            strSql.Append("SchoolID,UploadDate,SeatUsageXml)");
            strSql.Append(" values (");
            strSql.Append("@SchoolID,@UploadDate,@SeatUsageXml)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SchoolID",     SqlDbType.Int,       4),
                new SqlParameter("@UploadDate",   SqlDbType.DateTime),
                new SqlParameter("@SeatUsageXml", SqlDbType.Text)
            };
            parameters[0].Value = model.SchoolID;
            parameters[1].Value = model.UploadDate;
            parameters[2].Value = model.ToXml();

            object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
コード例 #3
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public AMS.Model.SMS_SeatUsage GetModel(int ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 ID,SchoolID,UploadDate,SeatUsageXml from SMS_SeatUsage ");
            strSql.Append(" where ID=@ID");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ID", SqlDbType.Int, 4)
            };
            parameters[0].Value = ID;

            AMS.Model.SMS_SeatUsage model = new AMS.Model.SMS_SeatUsage();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                if (ds.Tables[0].Rows[0]["ID"] != null && ds.Tables[0].Rows[0]["ID"].ToString() != "")
                {
                    model.ID = int.Parse(ds.Tables[0].Rows[0]["ID"].ToString());
                }
                if (ds.Tables[0].Rows[0]["SchoolID"] != null && ds.Tables[0].Rows[0]["SchoolID"].ToString() != "")
                {
                    model.SchoolID = int.Parse(ds.Tables[0].Rows[0]["SchoolID"].ToString());
                }
                if (ds.Tables[0].Rows[0]["UploadDate"] != null && ds.Tables[0].Rows[0]["UploadDate"].ToString() != "")
                {
                    model.UploadDate = DateTime.Parse(ds.Tables[0].Rows[0]["UploadDate"].ToString());
                }
                if (ds.Tables[0].Rows[0]["SeatUsageXml"] != null && ds.Tables[0].Rows[0]["SeatUsageXml"].ToString() != "")
                {
                    model.SeatUsageXml = ds.Tables[0].Rows[0]["SeatUsageXml"].ToString();
                }
                return(model);
            }
            else
            {
                return(null);
            }
        }
コード例 #4
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public AMS.Model.SMS_SeatUsage GetModel()
        {
            //该表无主键信息,请自定义主键/条件字段
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  [ID],[SchoolID],[UploadDate],[SeatUsageXml],[SchoolNum],[SchoolName] top 1  from View_SeatUsage ");
            strSql.Append(" where ");
            SqlParameter[] parameters =
            {
            };

            AMS.Model.SMS_SeatUsage model = new AMS.Model.SMS_SeatUsage();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(model);
            }
            else
            {
                return(null);
            }
        }
コード例 #5
0
        public static bool GetUsage()
        {
            try
            {
                //读者的列表
                Dictionary <string, int> ReaderDic = new Dictionary <string, int>();
                //座位数目
                int SeatCount = 0;
                //统计时间
                DateTime usageDT = AMS.ServiceProxy.SeatUsageOperationService.LastSeatUsageUploadDate(ServiceSet.SchoolNums);
                //阅览室列表
                List <SeatManage.ClassModel.ReadingRoomInfo> roomList = SeatManage.Bll.T_SM_ReadingRoom.GetReadingRooms(null, null, null);
                if (roomList.Count < 1)
                {
                    return(false);
                }
                foreach (SeatManage.ClassModel.ReadingRoomInfo room in roomList)
                {
                    SeatCount += room.SeatList.Seats.Count;
                }
                if (usageDT.Date <= DateTime.Parse("2000-1-1"))
                {
                    usageDT = SeatManage.Bll.T_SM_EnterOutLog_bak.GetFristLogDate().Date;
                    if (usageDT.Date <= DateTime.Parse("2000-1-1"))
                    {
                        return(false);
                    }
                }
                else
                {
                    usageDT = usageDT.AddDays(1);
                }
                List <SeatManage.ClassModel.TerminalInfoV2> terList = SeatManage.Bll.TerminalOperatorService.GetAllTeminalInfo();
                while (true)
                {
                    AMS.Model.SMS_SeatUsage usage = new AMS.Model.SMS_SeatUsage();
                    usage.SchoolNum  = ServiceSet.SchoolNums;
                    usage.SeatCount  = SeatCount;
                    usage.UploadDate = usageDT.Date;
                    foreach (SeatManage.ClassModel.TerminalInfoV2 ter in terList)
                    {
                        usage.DeviceUsage.Add(ter.ClientNo, new AMS.Model.DeviceUsageInfo()
                        {
                            DeviceNum = ter.ClientNo, DeviceName = ter.Describe
                        });
                    }
                    //获取进出记录
                    List <SeatManage.ClassModel.EnterOutLogInfo> eolList = SeatManage.Bll.T_SM_EnterOutLog_bak.GetEnterOutLogs(null, null, null, usageDT.Date, usageDT.AddDays(1).Date);
                    if (eolList.Count < 1)
                    {
                        if (usageDT >= DateTime.Now)
                        {
                            break;
                        }
                        else
                        {
                            usageDT = usageDT.AddDays(1);
                            continue;
                        }
                    }
                    foreach (SeatManage.ClassModel.EnterOutLogInfo log in eolList)
                    {
                        //增加使用人数
                        if (string.IsNullOrEmpty(log.CardNo))
                        {
                            continue;
                        }
                        if (ReaderDic.ContainsKey(log.CardNo))
                        {
                            ReaderDic[log.CardNo]++;
                        }
                        else
                        {
                            ReaderDic.Add(log.CardNo, 1);
                        }
                        //判断记录类型
                        switch (log.EnterOutState)
                        {
                        case SeatManage.EnumType.EnterOutLogType.BookingConfirmation:
                        {
                            usage.SeatUeage.EnterOutVisitors++;
                            usage.SeatUeage.BookingConfirmCount++;
                        }
                        break;

                        case SeatManage.EnumType.EnterOutLogType.ContinuedTime:
                        {
                            usage.SeatUeage.ContniueTimeCount++;
                            switch (log.Flag)
                            {
                            case SeatManage.EnumType.Operation.Admin:
                                usage.SeatUeage.ContniueTimeCountByAdmin++;
                                break;

                            case SeatManage.EnumType.Operation.Service:
                                usage.SeatUeage.ContniueTimeCountByService++;
                                break;

                            case SeatManage.EnumType.Operation.Reader:
                                usage.SeatUeage.ContniueTimeCountByUser++;
                                break;

                            default: break;
                            }
                        }
                        break;

                        case SeatManage.EnumType.EnterOutLogType.Leave:
                        {
                            switch (log.Flag)
                            {
                            case SeatManage.EnumType.Operation.Admin:
                                usage.SeatUeage.LeaveCountByAdmin++;
                                break;

                            case SeatManage.EnumType.Operation.Service:
                                usage.SeatUeage.LeaveCountByService++;
                                break;

                            case SeatManage.EnumType.Operation.Reader:
                                usage.SeatUeage.LeaveCountByUser++;
                                break;

                            default: break;
                            }
                        }
                        break;

                        case SeatManage.EnumType.EnterOutLogType.ReselectSeat:
                        {
                            usage.SeatUeage.EnterOutVisitors++;
                            usage.SeatUeage.ReselectSeatCount++;
                        }
                        break;

                        case SeatManage.EnumType.EnterOutLogType.SelectSeat:
                        {
                            usage.SeatUeage.EnterOutVisitors++;
                            switch (log.Flag)
                            {
                            case SeatManage.EnumType.Operation.Admin:
                                usage.SeatUeage.SelectSeatCountByAdmin++;
                                break;

                            case SeatManage.EnumType.Operation.Reader:
                                usage.SeatUeage.SelectSeatCount++;
                                break;

                            default: break;
                            }
                        }
                        break;

                        case SeatManage.EnumType.EnterOutLogType.ShortLeave:
                        {
                            usage.SeatUeage.ShortLeaveCount++;
                            switch (log.Flag)
                            {
                            case SeatManage.EnumType.Operation.Admin:
                                usage.SeatUeage.ShortLeaveCountByAdmin++;
                                break;

                            case SeatManage.EnumType.Operation.Service:
                                usage.SeatUeage.ShortLeaveCountByService++;
                                break;

                            case SeatManage.EnumType.Operation.Reader:
                                usage.SeatUeage.ShortLeaveCountByUser++;
                                break;

                            case SeatManage.EnumType.Operation.OtherReader:
                                usage.SeatUeage.ShortLeaveCountByReader++;
                                break;

                            default: break;
                            }
                        }
                        break;

                        case SeatManage.EnumType.EnterOutLogType.WaitingSuccess:
                        {
                            usage.SeatUeage.EnterOutVisitors++;
                            usage.SeatUeage.WaitSeatCount++;
                        }
                        break;

                        default: break;
                        }
                        if (!string.IsNullOrEmpty(log.TerminalNum) && log.Flag == SeatManage.EnumType.Operation.Reader)
                        {
                            if (usage.DeviceUsage.ContainsKey(log.TerminalNum))
                            {
                                usage.DeviceUsage[log.TerminalNum].RushCardCount++;
                            }
                            else
                            {
                                usage.DeviceUsage.Add(log.TerminalNum, new AMS.Model.DeviceUsageInfo()
                                {
                                    DeviceNum = log.TerminalNum, RushCardCount = 1, DeviceName = "未知终端"
                                });
                            }
                            usage.RushCardCount++;
                            switch (log.EnterOutState)
                            {
                            case SeatManage.EnumType.EnterOutLogType.BookingConfirmation: usage.DeviceUsage[log.TerminalNum].BookingConfirmCount++; break;

                            case SeatManage.EnumType.EnterOutLogType.ComeBack: usage.DeviceUsage[log.TerminalNum].ComeBackCount++; break;

                            case SeatManage.EnumType.EnterOutLogType.ContinuedTime: usage.DeviceUsage[log.TerminalNum].ContniueTimeCount++; break;

                            case SeatManage.EnumType.EnterOutLogType.Leave: usage.DeviceUsage[log.TerminalNum].LeaveCount++; break;

                            case SeatManage.EnumType.EnterOutLogType.ReselectSeat: usage.DeviceUsage[log.TerminalNum].SelectSeatCount++; break;

                            case SeatManage.EnumType.EnterOutLogType.SelectSeat: usage.DeviceUsage[log.TerminalNum].SelectSeatCount++; break;

                            case SeatManage.EnumType.EnterOutLogType.ShortLeave: usage.DeviceUsage[log.TerminalNum].ShortLeaveCount++; break;

                            default: break;
                            }
                        }
                    }
                    //预约统计
                    List <SeatManage.ClassModel.BespeakLogInfo> booklogList = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakList(null, null, usageDT.Date, 0, new List <SeatManage.EnumType.BookingStatus>()
                    {
                        SeatManage.EnumType.BookingStatus.Cencaled
                    });
                    foreach (SeatManage.ClassModel.BespeakLogInfo book in booklogList)
                    {
                        switch (book.CancelPerson)
                        {
                        case SeatManage.EnumType.Operation.Admin:
                            usage.SeatUeage.BookingCancelCount++;
                            break;

                        case SeatManage.EnumType.Operation.Service:
                            usage.SeatUeage.BookingOverTimeCount++;
                            break;

                        case SeatManage.EnumType.Operation.Reader:
                            usage.SeatUeage.BookingCancelCount++;
                            break;

                        default: break;
                        }
                    }
                    usage.SeatUeage.BookingCount = usage.SeatUeage.BookingCancelCount + usage.SeatUeage.BookingConfirmCount + usage.SeatUeage.BookingOverTimeCount;
                    //黑名单
                    List <SeatManage.ClassModel.BlackListInfo> blackList = SeatManage.Bll.T_SM_Blacklist.GetAllBlackListInfo(null, SeatManage.EnumType.LogStatus.None, usageDT.ToShortDateString(), usageDT.AddDays(1).ToShortDateString());
                    usage.BlackListRecords.BlackListCount = blackList.Count;
                    List <SeatManage.ClassModel.ViolationRecordsLogInfo> vrList = SeatManage.Bll.T_SM_ViolateDiscipline.GetViolationRecords(null, null, usageDT.ToShortDateString(), usageDT.AddDays(1).ToShortDateString(), SeatManage.EnumType.LogStatus.None, SeatManage.EnumType.LogStatus.None);
                    foreach (SeatManage.ClassModel.ViolationRecordsLogInfo vr in vrList)
                    {
                        usage.BlackListRecords.ViolationRecords[vr.EnterFlag].Count++;
                        usage.BlackListRecords.ViolationRecordsCount++;
                    }
                    usage.UserCount = ReaderDic.Count;
                    if (AMS.ServiceProxy.SeatUsageOperationService.AddNewSeatUsage(usage))
                    {
                        usageDT = usageDT.AddDays(1);
                    }
                    else
                    {
                        return(false);
                    }
                }

                return(true);
            }
            catch
            {
                throw;
            }
        }