示例#1
0
        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);
        }
示例#2
0
        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);
        }