Ejemplo n.º 1
0
        //初始化写入数据库的对象
        private void InitDataStatistics(EnumSliceType ASliceType, int AFunctype, ObjectInfo AObjectInfo, DateTime AStarttime)
        {
            IDataFirstStatisticsSlice.ObjectType = AObjectInfo.ObjType;
            IDataFirstStatisticsSlice.StrRent    = IGlobalSetting.StrRent;
            IDataFirstStatisticsSlice.ObjectID   = AObjectInfo.ObjID;
            switch (AFunctype)
            {
            case 1:
                IDataFirstStatisticsSlice.RecordFunction = EnumRecordFunction.RecordLength;
                break;

            case 2:
                IDataFirstStatisticsSlice.RecordFunction = EnumRecordFunction.RecordNumber;
                break;

            case 3:
                IDataFirstStatisticsSlice.RecordFunction = EnumRecordFunction.RingTime;
                break;

            case 4:
                IDataFirstStatisticsSlice.RecordFunction = EnumRecordFunction.HoldTime;
                break;

            default:
                break;
            }
            IDataFirstStatisticsSlice.StartTimeUTC = LongParse(AStarttime.ToUniversalTime().ToString("yyyyMMdd000000"), 0);
            //以这个local时间为唯一值
            IDataFirstStatisticsSlice.StartTimeLocal = LongParse(AStarttime.ToString("yyyyMMdd000000"), 0);
            IDataFirstStatisticsSlice.UpdateTime     = DateTime.Now;
            IDataFirstStatisticsSlice.Year           = AStarttime.Year;
            IDataFirstStatisticsSlice.Month          = AStarttime.Month;
            IDataFirstStatisticsSlice.Day            = AStarttime.Day;

            IDataFirstStatisticsSlice.StatisticsType = ConstStatisticsType.RecordStaitics;
            IDataFirstStatisticsSlice.SliceType      = ASliceType;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 初始化写入数据库的对象
        /// </summary>
        /// <param name="ASliceType">切片类型</param>
        /// <param name="AFunctype">统计类型</param>
        /// <param name="AObjectInfo">坐席,分机</param>
        /// <param name="AStarttime"></param>
        private void InitDataStatistics(EnumSliceType ASliceType, int AFunctype, ObjectInfo AObjectInfo, DateTime AStarttime)
        {
            IDataFirstStatisticsSlice.ObjectType = AObjectInfo.ObjType;
            IDataFirstStatisticsSlice.StrRent    = IGlobalSetting.StrRent;
            IDataFirstStatisticsSlice.ObjectID   = AObjectInfo.ObjID;
            switch (AFunctype)
            {
            case 1:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.ScoreNumber;
                IDataFirstStatisticsSlice.OrderID    = 1;
            }
            break;

            case 2:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.AppealNumber;
                IDataFirstStatisticsSlice.OrderID    = 2;
            }
            break;

            case 3:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.AppealSucNum;
                IDataFirstStatisticsSlice.OrderID    = 3;
            }
            break;

            case 4:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.TotalScore;
                IDataFirstStatisticsSlice.OrderID    = 4;
            }
            break;

            case 5:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.QaBeAppealedNum;
                IDataFirstStatisticsSlice.OrderID    = 5;
            }
            break;

            case 6:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.QaScoreNum;
                IDataFirstStatisticsSlice.OrderID    = 6;
            }
            break;

            case 7:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.QaTaskFinishedNum;
                IDataFirstStatisticsSlice.OrderID    = 7;
            }
            break;

            case 8:
            {
                IDataFirstStatisticsSlice.QMFunction = EnumQMFunction.QaTaskReceivedNum;
                IDataFirstStatisticsSlice.OrderID    = 8;
            }
            break;

            default:
                break;
            }
            IDataFirstStatisticsSlice.StartTimeUTC = LongParse(AStarttime.ToUniversalTime().ToString("yyyyMMddHHmmss"), 0);
            //以这个local时间为唯一值
            IDataFirstStatisticsSlice.StartTimeLocal = LongParse(AStarttime.ToString("yyyyMMddHHmmss"), 0);
            IDataFirstStatisticsSlice.UpdateTime     = DateTime.Now;
            IDataFirstStatisticsSlice.Year           = AStarttime.Year;
            IDataFirstStatisticsSlice.Month          = AStarttime.Month;
            IDataFirstStatisticsSlice.Day            = AStarttime.Day;

            IDataFirstStatisticsSlice.StatisticsType = ConstStatisticsType.QMStatistics;
            IDataFirstStatisticsSlice.SliceType      = ASliceType;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 按对象 按功能分
        /// </summary>
        /// <param name="AStarttime">开始时间</param>
        /// <param name="AStoptime">截止时间</param>
        /// <param name="AObjectInfo">统计目标</param>
        /// <param name="ASliceType">切片类型</param>
        private void DoRealStatistics(DateTime AStarttime, DateTime AStoptime, ObjectInfo AObjectInfo, EnumSliceType ASliceType)
        {
            List <DateTimeSplite> LListDateTimeSplite;

            foreach (int item in Enum.GetValues(typeof(EnumQMFunction)))
            {
                //if (item != 8)
                //    continue;
                IDataFirstStatisticsSlice = new DataFirstStatisticsSlice();
                InitDataStatistics(ASliceType, item, AObjectInfo, AStarttime);
                if (AObjectInfo.ObjID >= CombinSourceCode(StatisticsConstDefine.Const_Source_Agent_Begin) && AObjectInfo.ObjID < CombinSourceCode(StatisticsConstDefine.Const_Source_Extension_Begin))
                {
                    IDataFirstStatisticsSlice.ObjectType = 2;
                }
                else if (AObjectInfo.ObjID >= CombinSourceCode(StatisticsConstDefine.Const_Source_Extension_Begin) && AObjectInfo.ObjID < CombinSourceCode(StatisticsConstDefine.Const_Source_TrueExtension_Begin))
                {
                    IDataFirstStatisticsSlice.ObjectType = 1;
                }
                else if (AObjectInfo.ObjID >= CombinSourceCode(StatisticsConstDefine.Const_Source_TrueExtension_Begin) && AObjectInfo.ObjID < CombinSourceCode(StatisticsConstDefine.Const_Source_Role_Begin))
                {
                    IDataFirstStatisticsSlice.ObjectType = 1;
                }
                //得到统计的值
                LListDateTimeSplite = new List <DateTimeSplite>();
                switch (ASliceType)
                {
                case EnumSliceType.DaySlice:
                {
                    if (IGlobalSetting.IlogicPartMark == 1)        //按月分区了
                    {
                        GetSpliteTime(AStarttime, AStoptime, ref LListDateTimeSplite);
                        foreach (DateTimeSplite dsplite in LListDateTimeSplite)
                        {
                            IDataFirstStatisticsSlice.Value01 += DALQMInfo.GetQMDayStatisticsInfo(IDataBaseConfig, AObjectInfo, IGlobalSetting, dsplite.StartStatisticsTime, dsplite.StopStatisticsTime, item, IDataFirstStatisticsSlice.ObjectType);
                        }
                    }
                    else
                    {
                        IDataFirstStatisticsSlice.Value01 = DALQMInfo.GetQMDayStatisticsInfo(IDataBaseConfig, AObjectInfo, IGlobalSetting, AStarttime, AStoptime, item, IDataFirstStatisticsSlice.ObjectType);
                    }
                    DALFirstStatisticsQM.InsertQMStatistics(IDataBaseConfig, IGlobalSetting, 2, IDataFirstStatisticsSlice);
                }
                break;

                case EnumSliceType.WeekSlice:
                {
                    IDataFirstStatisticsSlice.Value01 = DALFirstStatisticsQM.GetWeekQMStatistics(IDataBaseConfig, AObjectInfo, IGlobalSetting, LongParse(AStarttime.ToString("yyyyMMddHHmmss"), 0), LongParse(AStoptime.ToString("yyyyMMddHHmmss"), 0), item, IDataFirstStatisticsSlice.ObjectType);
                    DALFirstStatisticsQM.InsertQMStatistics(IDataBaseConfig, IGlobalSetting, 3, IDataFirstStatisticsSlice);
                }
                break;

                case EnumSliceType.MonthSlice:
                {
                    IDataFirstStatisticsSlice.Value01 = DALFirstStatisticsQM.GetMonthQMStatistics(IDataBaseConfig, AObjectInfo, IGlobalSetting, LongParse(AStarttime.ToString("yyyyMMddHHmmss"), 0), LongParse(AStoptime.ToString("yyyyMMddHHmmss"), 0), item, IDataFirstStatisticsSlice.ObjectType);
                    DALFirstStatisticsQM.InsertQMStatistics(IDataBaseConfig, IGlobalSetting, 4, IDataFirstStatisticsSlice);
                }
                break;

                case EnumSliceType.YearSlice:
                {
                    IDataFirstStatisticsSlice.Value01 = DALFirstStatisticsQM.GetYearQMStatistics(IDataBaseConfig, AObjectInfo, IGlobalSetting, LongParse(AStarttime.ToString("yyyyMMddHHmmss"), 0), LongParse(AStoptime.ToString("yyyyMMddHHmmss"), 0), item, IDataFirstStatisticsSlice.ObjectType);
                    DALFirstStatisticsQM.InsertQMStatistics(IDataBaseConfig, IGlobalSetting, 5, IDataFirstStatisticsSlice);
                }
                break;

                default:
                    break;
                }
            }
        }
Ejemplo n.º 4
0
        //按对象 按功能分
        private void DoRealStatistics(DateTime AStarttime, DateTime AStoptime, ObjectInfo AObjectInfo, EnumSliceType ASliceType, int AIntOrderId = -1)
        {
            List <DateTimeSplite> LListDateTimeSplite;

            foreach (int item in Enum.GetValues(typeof(EnumRecordFunction)))
            {
                IDataFirstStatisticsSlice = new DataFirstStatisticsSlice();
                InitDataStatistics(ASliceType, item, AObjectInfo, AStarttime);

                //得到统计的值
                LListDateTimeSplite = new List <DateTimeSplite>();
                switch (ASliceType)
                {
                case EnumSliceType.MiniteSlice:
                {
                    if (IGlobalSetting.IlogicPartMark == 1)         //按月分区了
                    {
                        GetSpliteTime(AStarttime, AStoptime, ref LListDateTimeSplite);
                        foreach (DateTimeSplite dsplite in LListDateTimeSplite)
                        {
                            IDataFirstStatisticsSlice.Value01 += DALRecordInfo.GetAllRecordStatisticsInfo(IDataBaseConfig, AObjectInfo, IGlobalSetting, dsplite.StartStatisticsTime, dsplite.StopStatisticsTime, item);
                        }
                    }
                    else
                    {
                        IDataFirstStatisticsSlice.Value01 = DALRecordInfo.GetAllRecordStatisticsInfo(IDataBaseConfig, AObjectInfo, IGlobalSetting, AStarttime, AStoptime, item);
                    }
                }
                break;

                case EnumSliceType.DaySlice:
                {
                    IDataFirstStatisticsSlice.Value01 = DALFirstStatisticsRecord.GetDayRecordStatistics(IDataBaseConfig, AObjectInfo, IGlobalSetting, LongParse(AStarttime.ToString("yyyyMMdd000000"), 0), LongParse(AStoptime.ToString("yyyyMMdd000000"), 0), item, IDataFirstStatisticsSlice.ObjectType);
                }
                break;

                case EnumSliceType.WeekSlice:
                {
                    IDataFirstStatisticsSlice.Value01 = DALFirstStatisticsRecord.GetWeekRecordStatistics(IDataBaseConfig, AObjectInfo, IGlobalSetting, LongParse(AStarttime.ToString("yyyyMMdd000000"), 0), LongParse(AStoptime.ToString("yyyyMMdd000000"), 0), item, IDataFirstStatisticsSlice.ObjectType);
                }
                break;

                case EnumSliceType.MonthSlice:
                {
                    IDataFirstStatisticsSlice.Value01 = DALFirstStatisticsRecord.GetMonthRecordStatistics(IDataBaseConfig, AObjectInfo, IGlobalSetting, LongParse(AStarttime.ToString("yyyyMMdd000000"), 0), LongParse(AStoptime.ToString("yyyyMMdd000000"), 0), item, IDataFirstStatisticsSlice.ObjectType);
                }
                break;

                case EnumSliceType.YearSlice:
                {
                    IDataFirstStatisticsSlice.Value01 = DALFirstStatisticsRecord.GetYearRecordStatistics(IDataBaseConfig, AObjectInfo, IGlobalSetting, LongParse(AStarttime.ToString("yyyyMMdd000000"), 0), LongParse(AStoptime.ToString("yyyyMMdd000000"), 0), item, IDataFirstStatisticsSlice.ObjectType);
                }
                break;

                default:
                    break;
                }

                //将数据写入数据库
                switch (ASliceType)
                {
                case EnumSliceType.MiniteSlice:
                {
                    IDataFirstStatisticsSlice.OrderID = AIntOrderId;
                    DALFirstStatisticsRecord.InsertRecordStatistics(IDataBaseConfig, IGlobalSetting, 1, IDataFirstStatisticsSlice);
                }
                break;

                case EnumSliceType.DaySlice:
                    DALFirstStatisticsRecord.InsertRecordStatistics(IDataBaseConfig, IGlobalSetting, 2, IDataFirstStatisticsSlice);
                    break;

                case EnumSliceType.WeekSlice:
                    DALFirstStatisticsRecord.InsertRecordStatistics(IDataBaseConfig, IGlobalSetting, 3, IDataFirstStatisticsSlice);
                    break;

                case EnumSliceType.MonthSlice:
                    DALFirstStatisticsRecord.InsertRecordStatistics(IDataBaseConfig, IGlobalSetting, 4, IDataFirstStatisticsSlice);
                    break;

                case EnumSliceType.YearSlice:
                    DALFirstStatisticsRecord.InsertRecordStatistics(IDataBaseConfig, IGlobalSetting, 5, IDataFirstStatisticsSlice);
                    break;

                default:
                    break;
                }
            }
        }