Sfoglia il codice sorgente

报表工单修改

lihai 7 anni fa
parent
commit
2a214389e0

+ 20 - 0
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/GDLYController.cs

@@ -140,6 +140,26 @@ namespace CallCenterApi.Interface.Controllers.report
140 140
                 dtNew.Rows.Add(drNew);
141 141
             }
142 142
 
143
+            #region 汇总一条数据
144
+            DataRow drsum = dtNew.NewRow();
145
+            drsum[0] = "总计";
146
+
147
+            for (int i = 1; i < dtNew.Columns.Count; i++)
148
+            {
149
+                int ecount = 0;
150
+                int sum = 0;
151
+                for (int j = 0; j < dtNew.Rows.Count; j++)
152
+                {
153
+                    if (dtNew.Rows[j][i] != null)
154
+                    {
155
+                        ecount = int.Parse(dtNew.Rows[j][i].ToString());
156
+                        sum += ecount;
157
+                    }
158
+                }
159
+                drsum[i] = sum;
160
+            }
161
+            dtNew.Rows.Add(drsum);
162
+            #endregion
143 163
             return dtNew;
144 164
         }
145 165
 

+ 41 - 20
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TotalCallController.cs

@@ -13,6 +13,7 @@ namespace CallCenterApi.Interface.Controllers.report
13 13
     //[Authority]
14 14
     public class TotalCallController : BaseController
15 15
     {
16
+        BLL.T_Call_CallRecords bll = new BLL.T_Call_CallRecords();
16 17
         //总呼叫量统计
17 18
 
18 19
         //获取表头
@@ -45,7 +46,8 @@ namespace CallCenterApi.Interface.Controllers.report
45 46
                 dtNew.Columns.Add(dc3);
46 47
                 dtNew.Columns.Add(dc4);
47 48
                 #endregion
48
-                DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
49
+                //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
50
+                var list = bll.DataTableToList(bll.GetList(" 1=1 ").Tables[0]);
49 51
                 DateTime dtNow;
50 52
                 int Count = 0;
51 53
                 int DayCount = 0;
@@ -65,20 +67,26 @@ namespace CallCenterApi.Interface.Controllers.report
65 67
 
66 68
                     DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
67 69
                     int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
68
-                    DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
69
-                    if (dtRow.Length > 0)
70
+                    //DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
71
+                    var listByTime = list.Where(x => x.BeginTime >= Convert.ToDateTime(beginTime.ToString()) && x.BeginTime < beginTime.AddDays(days).AddSeconds(-1));
72
+
73
+                    //if (dtRow.Length > 0)
74
+                    if(listByTime.Count()>0)
70 75
                     {
71
-                        Count += dtRow.Length;
76
+                        //Count += dtRow.Length;
77
+                        Count += listByTime.Count();
72 78
                         for (int j = 1; j <= days; j++)
73 79
                         {
74 80
                             DataRow dr1 = dtNew.NewRow();
75
-                            if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
81
+                            //if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
82
+                            if(listByTime.Where(x=>x.BeginTime>=beginTime.AddDays(j-1) && x.BeginTime<beginTime.AddDays(j).AddSeconds(-1)).Count()>0)
76 83
                             {
77 84
                                 DayCount += 1;
78 85
 
79 86
                                 dr1["月份"] = beginTime.Month + "月";
80 87
                                 dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
81
-                                dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
88
+                                // dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
89
+                                dr1["总数"] = listByTime.Where(x => x.BeginTime >= beginTime.AddDays(j - 1) && x.BeginTime < beginTime.AddDays(j).AddSeconds(-1)).Count();
82 90
                                 dr1["Count"] = "1";
83 91
                                 dtNew.Rows.Add(dr1);
84 92
                             }
@@ -88,7 +96,8 @@ namespace CallCenterApi.Interface.Controllers.report
88 96
                         {
89 97
                             drNew["月份"] = beginTime.Month + "月";
90 98
                             drNew["日期"] = "总计";
91
-                            drNew["总数"] = dtRow.Length;
99
+                            //drNew["总数"] = dtRow.Length;
100
+                            drNew["总数"] = listByTime.Count();
92 101
                             drNew["Count"] = DayCount.ToString();
93 102
                             dtNew.Rows.Add(drNew);
94 103
                         }
@@ -124,7 +133,8 @@ namespace CallCenterApi.Interface.Controllers.report
124 133
                 dtNew.Columns.Add(dc2);
125 134
                 dtNew.Columns.Add(dc3);
126 135
                 #endregion
127
-                DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
136
+                //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
137
+                var list = bll.DataTableToList(bll.GetList(" 1=1 ").Tables[0]);
128 138
                 DateTime dtNow;
129 139
                 int Count = 0;
130 140
                 int DayCount = 0;
@@ -144,21 +154,26 @@ namespace CallCenterApi.Interface.Controllers.report
144 154
 
145 155
                     DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
146 156
                     int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
147
-                    DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
148
-                    if (dtRow.Length > 0)
157
+                    //DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
158
+                    var listByTime = list.Where(x => x.BeginTime >= Convert.ToDateTime(beginTime.ToString()) && x.BeginTime < beginTime.AddDays(days).AddSeconds(-1));
159
+                    //if (dtRow.Length > 0)
160
+                    if (listByTime.Count() > 0)
149 161
                     {
150
-                        Count += dtRow.Length;
162
+                        //Count += dtRow.Length;
163
+                        Count += listByTime.Count();
151 164
                         for (int j = 1; j <= days; j++)
152 165
                         {
153 166
                             DataRow dr1 = dtNew.NewRow();
154
-                            if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
167
+                            //if (dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length > 0)
168
+                            if (listByTime.Where(x => x.BeginTime >= beginTime.AddDays(j - 1) && x.BeginTime < beginTime.AddDays(j).AddSeconds(-1)).Count() > 0)
155 169
                             {
156 170
                                 DayCount += 1;
157 171
 
158 172
                                 dr1["月份"] = beginTime.Month + "月";
159 173
                                 dr1["日期"] = beginTime.AddDays(j - 1).ToShortDateString();
160
-                                dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
161
-                               
174
+                                //dr1["总数"] = dtRow.CopyToDataTable().Select("begintime >='" + beginTime.AddDays(j - 1) + "' and  beginTime<'" + beginTime.AddDays(j).AddSeconds(-1) + "'").Length;
175
+                                dr1["总数"] = listByTime.Where(x => x.BeginTime >= beginTime.AddDays(j - 1) && x.BeginTime < beginTime.AddDays(j).AddSeconds(-1)).Count();
176
+
162 177
                                 dtNew.Rows.Add(dr1);
163 178
                             }
164 179
                         }
@@ -167,7 +182,8 @@ namespace CallCenterApi.Interface.Controllers.report
167 182
                         {
168 183
                             drNew["月份"] = beginTime.Month + "月";
169 184
                             drNew["日期"] = "总计";
170
-                            drNew["总数"] = dtRow.Length;
185
+                            //drNew["总数"] = dtRow.Length;
186
+                            drNew["总数"] = listByTime.Count();
171 187
                             dtNew.Rows.Add(drNew);
172 188
                         }
173 189
                         DayCount = 0;
@@ -214,8 +230,9 @@ namespace CallCenterApi.Interface.Controllers.report
214 230
             if (Request.IsAuthenticated)
215 231
             {
216 232
                 string[] arr=new string[12];
217
-                
218
-                DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
233
+
234
+                //DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
235
+                var list = bll.DataTableToList(bll.GetList(" 1=1 ").Tables[0]);
219 236
                 DateTime dtNow;
220 237
 
221 238
                 if (string.IsNullOrEmpty(years))
@@ -230,10 +247,14 @@ namespace CallCenterApi.Interface.Controllers.report
230 247
                 {
231 248
                     DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
232 249
                     int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
233
-                    DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
234
-                    if (dtRow.Length > 0)
250
+                    //DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
251
+                    var listByTime = list.Where(x => x.BeginTime >= Convert.ToDateTime(beginTime.ToString()) && x.BeginTime < beginTime.AddDays(days).AddSeconds(-1));
252
+
253
+                    //if (dtRow.Length > 0)
254
+                    if (listByTime.Count() > 0)
235 255
                     {
236
-                        arr[i-1] = dtRow.Length.ToString();
256
+                        //arr[i-1] = dtRow.Length.ToString();
257
+                        arr[i-1] = listByTime.Count().ToString();
237 258
                     }
238 259
                     else
239 260
                     {