public IDictionary <string, double> StatisticDailySignState(DateTime startDate, DateTime endDate, Model.TB_DailyPlanCatalog currentCatalog) { string str_StartDate = startDate.ToString("yyyy-MM-dd"); string str_EndDate = endDate.ToString("yyyy-MM-dd"); StringBuilder builder = new StringBuilder(); builder.Append("SELECT Completion,count(*) from TB_DailyPlanSign WHERE "); builder.Append(string.Format("Date >= '{0}' and Date <='{1}' AND CatalogID = {2} ", str_StartDate, str_EndDate, currentCatalog.ID)); builder.Append("and IsSign = 'True' GROUP BY Completion"); IDictionary <string, double> result = new Dictionary <string, double>(); result.Add(EnumDailyPlanState.Go_Ahead, 0); result.Add(EnumDailyPlanState.Just_Soso, 0); result.Add(EnumDailyPlanState.Trouble, 0); result.Add(EnumDailyPlanState.Well_Done, 0); result.Add(EnumDailyPlanState.Worse, 0); try { using (var db = this.mFactory.OpenDefalutDataBase()) { DataTable table = db.ExecuteSqlToDataSet(builder.ToString()).Tables[0]; foreach (DataRow row in table.Rows) { result[row[0].ToString()] = double.Parse(row[1].ToString()); } } } catch (Exception ex) { mFactory.WriteSystemLog("StatisticDailySignPrecent", ex); } return(result); }
public DataTable StatisticDailySignPrecent(DateTime startDate, DateTime endDate, Model.TB_DailyPlanCatalog currentCatalog) { string str_StartDate = startDate.ToString("yyyy-MM-dd"); string str_EndDate = endDate.ToString("yyyy-MM-dd"); StringBuilder builder = new StringBuilder(); builder.Append("SELECT count(*) from TB_DailyPlanSign WHERE "); builder.Append(string.Format("Date >= '{0}' and Date <='{1}' AND CatalogID = {2} and IsSign = 'True'", str_StartDate, str_EndDate, currentCatalog.ID)); DataTable result = new DataTable(); result.Columns.Add(new DataColumn("类型", typeof(string))); result.Columns.Add(new DataColumn("天数", typeof(int))); try { using (var db = this.mFactory.OpenDefalutDataBase()) { object value = db.ExecuteSqlToDataSet(builder.ToString()).Tables[0].Rows[0][0]; int count = string.IsNullOrEmpty(value.ToString()) ? 0 : int.Parse(value.ToString()); DataRow row = result.NewRow(); row[0] = "打卡天数"; row[1] = count; DataRow row1 = result.NewRow(); row1[0] = "未打卡天数"; row1[1] = endDate.Subtract(startDate).Days + 1 - count; result.Rows.Add(row1); result.Rows.Add(row); } } catch (Exception ex) { mFactory.WriteSystemLog("StatisticDailySignPrecent", ex); } return(result); }