public void RunFirstStatistics() { string LPath = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); string LFilePath = System.IO.Path.Combine(LPath, StatisticsConstDefine.XmlFileName); if (ReadXml(LFilePath)) { if (IListServiceConfigInfo != null) { //服务启动时间 string LStrStartTime = ConfigurationManager.AppSettings["StartTime"] != null ? ConfigurationManager.AppSettings["StartTime"] : "020000"; LStrStartTime = DateTime.Now.Date.ToString("yyyyMMdd") + LStrStartTime; DateTime LStartTime = StringToDateTime(LStrStartTime); //初次统计 foreach (ServiceConfigInfo serviceconfiginfo in IListServiceConfigInfo) { //serviceconfiginfo.StartTime这个时间写统计结束的时间 if (LStartTime < DateTime.Now && serviceconfiginfo.StartTime < DateTime.Today && serviceconfiginfo.IsStart) { //读取全局参数 List <string> LListStrRent = new List <string>(); List <string> LListTableNameInfo = new List <string>(); string LStrTemp = string.Empty; //得到租户信息 DALCommon.ObtainRentList(IDatabaseConfig, ref LListStrRent); foreach (string strRent in LListStrRent) { IGlobalSetting.StrRent = strRent; int LlogicPartMark = DALCommon.ObtainRentLogicTable(IDatabaseConfig, strRent, StatisticsConstDefine.Const_ColumnName_LPRecord); //1为有分表 2为无分表 if (LlogicPartMark == 0) { FileLog.WriteInfo("DoAction()", "LlogicPartMark == 0"); continue; } IGlobalSetting.IlogicPartMark = LlogicPartMark; if (LlogicPartMark == 1) { LListTableNameInfo = new List <string>(); DALCommon.ObtainRentExistLogicPartitionTables(IDatabaseConfig, strRent, StatisticsConstDefine.Const_TableName_Record, ref LListTableNameInfo); } IGlobalSetting.LStrRecordName = LListTableNameInfo; //全局参数里座席分机真实分机 LStrTemp = string.Empty; DALGlobalSetting.GetGlobalSetting(IDatabaseConfig, ref LStrTemp, strRent, StatisticsConstDefine.Const_Agent_Extension); if (LStrTemp.Contains('R')) //如有真实分机则统计座席和真实分机的信息 { IGlobalSetting.StrConfigAER = "R"; } else //其它则统计座席和分机的信息 { IGlobalSetting.StrConfigAER = "A"; } //全局周的配置 LStrTemp = string.Empty; DALGlobalSetting.GetGlobalSetting(IDatabaseConfig, ref LStrTemp, strRent, StatisticsConstDefine.Const_Week_Config); IGlobalSetting.StrWeekStart = LStrTemp; //全局月的配置 LStrTemp = string.Empty; DALGlobalSetting.GetGlobalSetting(IDatabaseConfig, ref LStrTemp, strRent, StatisticsConstDefine.Const_Month_Config); IGlobalSetting.StrMonthStart = LStrTemp; if (serviceconfiginfo.StatistcsName != StatisticsConstDefine.KPIStatisticsName && serviceconfiginfo.IsStart) { IStatistics iStatistics = DALFactory.DataAccess.CreateStatistic(serviceconfiginfo.StatistcsName); iStatistics.DoAction(IDatabaseConfig, serviceconfiginfo, IGlobalSetting); } if (serviceconfiginfo.StatistcsName == StatisticsConstDefine.KPIStatisticsName && serviceconfiginfo.IsStart) { //kpi计算 KPIStatistics kpiStatistics = new KPIStatistics(); kpiStatistics.DoAction(IDatabaseConfig, serviceconfiginfo, IGlobalSetting); } Thread.Sleep(10); } } } } //保存统计时间到xml SaveXml(LFilePath); Thread.Sleep(60 * 1000); } }