liyuanyuan 3 gadi atpakaļ
vecāks
revīzija
da0c1809ae

+ 5 - 319
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/CallOutReportController.cs

@@ -1089,205 +1089,7 @@ namespace CallCenterApi.Interface.Controllers.report
1089 1089
 
1090 1090
             return Content(obj.ToJson());
1091 1091
         }
1092
-
1093
-        //3、营业部任务汇总表 根据分配时间 的任务量
1094
-        //营业部 任务量 呼叫量 呼叫率  呼通量,呼通率,平均通话时长; 
1095
-        public ActionResult GetTaskDetailold(string sdate, string edate,int export = 0,int taskid=0)
1096
-        {
1097
-            //两个wheresql几乎完全一样,只有一个用到leftjoin的时候会提示f_deleteflag 不明确所以加了一个A.
1098
-            StringBuilder wheresql1 = new StringBuilder();
1099
-            StringBuilder wheresql = new StringBuilder();
1100
-            wheresql1.Append(" F_FPState = 1 and a.F_DeleteFlag = 0 and F_Taskid in (select F_TaskID from T_Call_OutTask where  F_IsStart = 1 and F_DeleteFlag = 0 ) ");
1101
-            wheresql.Append(" F_FPState = 1 and F_DeleteFlag = 0 and F_Taskid in (select F_TaskID from T_Call_OutTask where  F_IsStart = 1 and F_DeleteFlag = 0 ) ");
1102
-
1103
-            if (!string.IsNullOrWhiteSpace(sdate))
1104
-                wheresql.Append(" and DATEDIFF(day,F_fptime,'" + sdate.Trim() + "')<=0");
1105
-            wheresql1.Append(" and DATEDIFF(day,F_fptime,'" + sdate.Trim() + "')<=0");
1106
-            if (!string.IsNullOrWhiteSpace(edate))
1107
-                wheresql.Append(" and DATEDIFF(day,F_fptime,'" + edate.Trim() + "')>=0");
1108
-            wheresql1.Append(" and DATEDIFF(day,F_fptime,'" + edate.Trim() + "')>=0");
1109
-
1110
-            if (taskid != 0)
1111
-            {
1112
-                wheresql.Append("  and  F_TaskId ='"+taskid+"'");
1113
-                wheresql1.Append("  and  F_TaskId ='" + taskid + "'");
1114
-            }
1115
-
1116
-            //string sql = "  select  F_UserId,COUNT(1) tasknum , SUM(case when CallId is not null then 1 else 0 end ) callnum from T_Call_OutTaskTelNum  where  " + wheresql.ToString() + "  group by F_UserId ";
1117
-
1118
-
1119
-            string sql= "select b.F_DeptId, COUNT(1) tasknum , SUM(case when CallId is not null and CallId != '' then 1 else 0 end) callnum from T_Call_OutTaskTelNum A left join T_Sys_UserAccount B on A.F_UserId = B.F_UserId where " + wheresql1.ToString() + "  group by B.F_DeptId ";
1120
-
1121
-
1122
-            string deptsql = "  select distinct a.F_DeptId,b.F_DeptName from [T_Sys_UserAccount] a left join  T_Sys_Department b on a.F_DeptId=b.F_DeptId";
1123
-
1124
-
1125
-            DataTable deptdt = DbHelperSQL.Query(deptsql).Tables[0];
1126
-
1127
-
1128
-            //营业部 任务量 呼叫量 呼叫率  呼通量,呼通率,平均通话时长;
1129
-            DataTable dt = DbHelperSQL.Query(sql).Tables[0];
1130
-            dt.Columns.Add("callpercent"); //呼叫率
1131
-
1132
-            dt.Columns.Add("exhalationflux",typeof(int));//呼通量
1133
-
1134
-            dt.Columns.Add("exhalationper");//呼通率
1135
-
1136
-            dt.Columns.Add("talklong");//平均通话时长
1137
-
1138
-            dt.Columns.Add("depname");//平均通话时长
1139
-
1140
-            //int benbutasknum = 0;
1141
-
1142
-            //int benbucallnum = 0;
1143
-
1144
-            //int benbuexhalationflux = 0;
1145
-            //int benbutalklong = 0;// 平均通话时长
1146
-
1147
-
1148
-            //int dzbenbutasknum = 0;
1149
-
1150
-            //int dzbenbucallnum = 0;
1151
-
1152
-            //int dzbenbuexhalationflux = 0;
1153
-            //int dzbenbutalklong = 0;// 平均通话时长
1154
-
1155
-
1156
-            foreach (DataRow dr in dt.Rows)
1157
-            {
1158
-                int deptid= Convert.ToInt32(dr["F_DeptId"].ToString());
1159
-                //List<Model.T_Sys_UserAccount> userlist = new List<Model.T_Sys_UserAccount>();
1160
-
1161
-                int tasknum = Convert.ToInt32(dr["tasknum"].ToString());
1162
-                int callnum = Convert.ToInt32(dr["callnum"].ToString());//呼叫量
1163
-                dr["callpercent"] = callnum == 0 ? "0" : string.Format("{0:F2}%", ((double)(callnum) / tasknum) * 100);
1164
-
1165
-                string sql2 = " SELECT   COUNT(1) exhalationflux, ISNULL( SUM(TalkLongTime) ,0) talklong  FROM[dbo].[T_Call_CallRecords]  where CallId in (  select callid from  T_Call_OutTaskTelNum where  " + wheresql.ToString() + " and  F_UserId in (select F_UserId from T_Sys_UserAccount where F_DeptId='" + deptid + "') and CallId is not null )  and CallState = 1";
1166
-
1167
-
1168
-                int talklong = 0;
1169
-                DataTable dt2 = DbHelperSQL.Query(sql2).Tables[0];
1170
-                foreach (DataRow dr2 in dt2.Rows)
1171
-                {
1172
-                    int exhalationflux = Convert.ToInt32(dr2["exhalationflux"]);
1173
-                    dr["exhalationflux"] = exhalationflux;
1174
-                    dr["exhalationper"] = Convert.ToInt32(dr["callnum"].ToString()) == 0 ? "0" : string.Format("{0:F2}%", ((double)(exhalationflux) / callnum) * 100);
1175
-
1176
-                       talklong+= Convert.ToInt32(dr2["talklong"].ToString());
1177
-                    dr["talklong"] = exhalationflux == 0 ? "0" : string.Format("{0:F2}", ((double)(talklong) / exhalationflux) );
1178
-                }
1179
-
1180
-                string depname = DbHelperSQL.GetSingle("  select  dbo.[GetDeptName]('" + deptid + "')").ToString();
1181
-                dr["depname"] = depname;
1182
-
1183
-                //if (depname == "客户部")
1184
-                //{
1185
-                //    benbutasknum += tasknum;
1186
-                //    benbucallnum += callnum;
1187
-                //    benbuexhalationflux += Convert.ToInt32(dr["exhalationflux"].ToString());
1188
-                //    benbutalklong += talklong;
1189
-                //}
1190
-
1191
-                //if (depname == "邓州")
1192
-                //{
1193
-                //    dzbenbutasknum += tasknum;
1194
-                //    dzbenbucallnum += callnum;
1195
-                //    dzbenbuexhalationflux += Convert.ToInt32(dr["exhalationflux"].ToString());
1196
-                //    dzbenbutalklong += talklong;
1197
-                //}
1198
-
1199
-
1200
-            }
1201
-            //if (dt.Rows.Count > 0)
1202
-            //{
1203
-
1204
-            //    dt.Columns["depname"].SetOrdinal(0);
1205
-            //    dt.Columns.Remove("F_UserId");
1206
-
1207
-            //    for (int i = dt.Rows.Count - 1; i >= 0; i--)
1208
-            //    {
1209
-            //        if (dt.Rows[i]["depname"].ToString() == "客户部" || dt.Rows[i]["depname"].ToString() == "邓州")
1210
-            //        {
1211
-            //            dt.Rows.RemoveAt(i);
1212
-            //        }
1213
-            //    }
1214
-            //    if (dzbenbutasknum > 0)
1215
-            //    {
1216
-            //        //营业部 任务量 呼叫量 呼叫率  呼通量,呼通率,平均通话时长;
1217
-            //        DataRow dr8 = dt.Rows.Add();
1218
-            //        dr8["depname"] = "邓州";
1219
-            //        dr8["tasknum"] = dzbenbutasknum;
1220
-            //        dr8["callnum"] = dzbenbucallnum;//呼叫量
1221
-            //                                      //呼叫率
1222
-            //        dr8["callpercent"] = dzbenbutasknum == 0 ? "0" : string.Format("{0:F2}%", ((double)(dzbenbucallnum) / dzbenbutasknum) * 100);
1223
-            //        //呼通量
1224
-            //        dr8["exhalationflux"] = dzbenbuexhalationflux;
1225
-            //        //呼通率
1226
-            //        dr8["exhalationper"] = dzbenbucallnum == 0 ? "0" : string.Format("{0:F2}%", ((double)(dzbenbuexhalationflux) / dzbenbucallnum) * 100);
1227
-            //        //平均通话时长
1228
-            //        dr8["talklong"] = dzbenbuexhalationflux == 0 ? "0" : string.Format("{0:F2}", ((double)(dzbenbutalklong) / dzbenbuexhalationflux));
1229
-            //    }
1230
-
1231
-            //    if (benbutasknum > 0)
1232
-            //    {
1233
-            //        //营业部 任务量 呼叫量 呼叫率  呼通量,呼通率,平均通话时长;
1234
-            //        DataRow dr7 = dt.Rows.Add();
1235
-            //        dr7["depname"] = "客户部";
1236
-            //        dr7["tasknum"] = benbutasknum;
1237
-            //        dr7["callnum"] = benbucallnum;//呼叫量
1238
-            //                                      //呼叫率
1239
-            //        dr7["callpercent"] = benbutasknum == 0 ? "0" : string.Format("{0:F2}%", ((double)(benbucallnum) / benbutasknum) * 100);
1240
-            //        //呼通量
1241
-            //        dr7["exhalationflux"] = benbuexhalationflux;
1242
-            //        //呼通率
1243
-            //        dr7["exhalationper"] = benbucallnum == 0 ? "0" : string.Format("{0:F2}%", ((double)(benbuexhalationflux) / benbucallnum) * 100);
1244
-            //        //平均通话时长
1245
-            //        dr7["talklong"] = benbuexhalationflux == 0 ? "0" : string.Format("{0:F2}", ((double)(benbutalklong) / benbuexhalationflux));
1246
-            //    }
1247
-            //}
1248
-            if (dt.Rows.Count>0)
1249
-            {
1250
-                   dt.Columns["depname"].SetOrdinal(0);
1251
-                  dt.Columns.Remove("F_DeptId");
1252
-
1253
-                DataRow drlast = dt.NewRow();//.Rows.Add();
1254
-                drlast["depname"] = "合计";
1255
-                drlast["tasknum"] = dt.Select("tasknum is not null").Sum(x => x.Field<int>("tasknum"));
1256
-                drlast["callnum"] = dt.Select("callnum is not null").Sum(x => x.Field<int>("callnum"));
1257
-                drlast["callpercent"] = drlast["callnum"].ToString() == "0" ? "0" : string.Format("{0:F2}%", ((double)(Convert.ToInt32(drlast["callnum"])) / Convert.ToInt32(drlast["tasknum"])) * 100);
1258
-                drlast["exhalationflux"] = dt.Select().Sum(x => x.Field<int>("exhalationflux"));
1259
-                drlast["exhalationper"] = drlast["callnum"].ToString() == "0" ? "0" : string.Format("{0:F2}%", ((double)(Convert.ToInt32(drlast["exhalationflux"])) / Convert.ToInt32(drlast["callnum"])) * 100);// benbucallnum == 0 ? "0" : string.Format("{0:F2}%", ((double)(benbuexhalationflux) / benbutasknum) * 100);
1260
-
1261
-                string sql33 = " SELECT   COUNT(1) exhalationflux, ISNULL( SUM(TalkLongTime) ,0) talklong  FROM[dbo].[T_Call_CallRecords]  where CallId in (  select callid from  T_Call_OutTaskTelNum where  " + wheresql.ToString() + "  and CallId is not null )  and CallState = 1";
1262
-
1263
-                DataTable dt33 = DbHelperSQL.Query(sql33).Tables[0];
1264
-                int talklongsum = dt33.Select().Sum(x => x.Field<int>("talklong"));
1265
-                drlast["talklong"] = drlast["exhalationflux"].ToString() == "0" ? "0" : string.Format("{0:F2}", ((double)(talklongsum) / Convert.ToInt32(drlast["exhalationflux"])));
1266
-                dt.Rows.Add(drlast);
1267
-            }
1268
-            if (export == 1)
1269
-            {
1270
-                NPOIHelper npoi = new NPOIHelper();              
1271
-                string[] ccc = {
1272
-                  
1273
-                     "营业部","任务量","呼叫量","呼叫率","呼通量","呼通率(%)","平均通话时长"
1274
-                };
1275
-
1276
-                if (npoi.ExportToExcel("营业部任务汇总表", dt, ccc) == "")
1277
-                {
1278
-                    return Success("导出成功");
1279
-                }
1280
-                else
1281
-                {
1282
-                    return Error("导出失败");
1283
-                }
1284
-
1285
-
1286
-
1287
-            }
1288
-
1289
-            return Success("营业部任务汇总表获取成功", dt);
1290
-        }
1092
+ 
1291 1093
 
1292 1094
         //4、营业部热点问题统计
1293 1095
 
@@ -1924,7 +1726,7 @@ namespace CallCenterApi.Interface.Controllers.report
1924 1726
             DataColumn dc2 = new DataColumn("HJCount", Type.GetType("System.Int32"));
1925 1727
             dtNew2.Columns.Add(dc1);
1926 1728
             dtNew2.Columns.Add(dc2);
1927
-
1729
+            #endregion
1928 1730
             BLL.T_Sys_UserAccount bll = new BLL.T_Sys_UserAccount();
1929 1731
             var userlist = bll.GetModelList(" F_DeleteFlag=0");
1930 1732
 
@@ -2032,124 +1834,8 @@ namespace CallCenterApi.Interface.Controllers.report
2032 1834
         }
2033 1835
 
2034 1836
         #endregion
2035
-        #endregion
2036
-        //#region  获取乡镇统计排名
2037
-        //public ActionResult GetRank(string sdate, string edate, string taskid)
2038
-        //{
2039
-        //    if (string.IsNullOrWhiteSpace(sdate))
2040
-        //    {
2041
-        //        sdate = DateTime.Now.ToString("yyyy-MM-dd");
2042
-        //    }
2043
-        //    if (string.IsNullOrWhiteSpace(edate))
2044
-        //    {
2045
-        //        edate = DateTime.Now.ToString("yyyy-MM-dd");
2046
-        //    }
2047
-        //    string strand = "";
2048
-        //    if (!string.IsNullOrWhiteSpace(taskid))
2049
-        //    {
2050
-        //        strand = "and F_TaskId='" + taskid + "'";
2051
-        //    }
2052
-        //    DataTable dtnew = new DataTable();
2053
-        //    dtnew.Columns.Add("xiangzhen", Type.GetType("System.String"));
2054
-        //    dtnew.Columns.Add("zongshu", Type.GetType("System.Int32"));
2055
-        //    int leiji = 0;
2056
-        //    var conf = new BLL.T_Sys_DictionaryValue().GetModelList(" F_DictionaryFlag='JBDW' ");
2057
-        //    if (conf.Count > 0)
2058
-        //    {
2059
-        //        foreach (var itemconf in conf)
2060
-        //        {
2061
-        //            DataRow dr = dtnew.NewRow();
2062
-        //            dr["xiangzhen"] = itemconf.F_Name;
2063
-        //            //根据乡镇获取总数
2064
-        //            int totalnum = otnBLL.GetRecordCount(" DATEDIFF(day,ExpandDatField1,'" + sdate + "')<=0 and DATEDIFF(day,ExpandDatField1,'" + edate + "')>=0 and ExpandIntField1='" + itemconf.F_DictionaryValueId + "' " + strand);
2065
-        //            //int totalnum = ansBLL.GetRecordCount(" DATEDIFF(day,F_OptOn,'" + sdate + "')<=0 and DATEDIFF(day,F_OptOn,'" + edate + "')>=0 and F_Answer='" + itemconf.F_Name + "' ");
2066
-
2067
-        //            leiji += totalnum;
2068
-        //            dr["zongshu"] = totalnum;
2069
-
2070
-        //            dtnew.Rows.Add(dr);
2071
-        //        }
2072
-        //    }
2073
-
2074
-        //    dtnew.DefaultView.Sort = "zongshu DESC";
2075
-        //    DataTable dtTemp = dtnew.DefaultView.ToTable();
2076
-        //    //计算总计
2077
-        //    DataRow dr0 = dtTemp.NewRow();
2078
-        //    dr0["xiangzhen"] = "总计";
2079
-        //    dr0["zongshu"] = leiji;
2080
-
2081
-        //    dtTemp.Rows.Add(dr0);
2082
-        //    return Success("获取乡镇报表数据成功", dtTemp);
2083
-
2084
-        //}
2085
-        //#region  数据查询--获取排名
2086
-        //public ActionResult GetRankExpt(string sdate, string edate, string taskid)
2087
-        //{
2088
-        //    if (string.IsNullOrWhiteSpace(sdate))
2089
-        //    {
2090
-        //        sdate = DateTime.Now.ToString("yyyy-MM-dd");
2091
-        //    }
2092
-        //    if (string.IsNullOrWhiteSpace(edate))
2093
-        //    {
2094
-        //        edate = DateTime.Now.ToString("yyyy-MM-dd");
2095
-        //    }
2096
-
2097
-        //    string strand = "";
2098
-        //    if (!string.IsNullOrWhiteSpace(taskid))
2099
-        //    {
2100
-        //        strand = "and F_TaskId='" + taskid + "'";
2101
-        //    }
2102
-        //    DataTable dtnew = new DataTable();
2103
-        //    dtnew.Columns.Add("paiming", Type.GetType("System.String"));
2104
-        //    dtnew.Columns.Add("xiangzhen", Type.GetType("System.String"));
2105
-        //    dtnew.Columns.Add("zongshu", Type.GetType("System.Int32"));
2106
-        //    int leiji = 0;
2107
-
2108
-        //    var conf = new BLL.T_Sys_DictionaryValue().GetModelList(" F_DictionaryFlag='JBDW' ");
2109
-        //    if (conf.Count > 0)
2110
-        //    {
2111
-        //        foreach (var itemconf in conf)
2112
-        //        {
2113
-        //            DataRow dr = dtnew.NewRow();
2114
-        //            dr["xiangzhen"] = itemconf.F_Name;
2115
-        //            //根据乡镇获取总数
2116
-        //            int totalnum = otnBLL.GetRecordCount(" DATEDIFF(day,ExpandDatField1,'" + sdate + "')<=0 and DATEDIFF(day,ExpandDatField1,'" + edate + "')>=0 and ExpandIntField1='" + itemconf.F_DictionaryValueId + "' " + strand);
2117
-        //            //int totalnum = ansBLL.GetRecordCount(" DATEDIFF(day,F_OptOn,'" + sdate + "')<=0 and DATEDIFF(day,F_OptOn,'" + edate + "')>=0 and F_Answer='" + itemconf.F_Name + "' ");
2118
-
2119
-        //            leiji += totalnum;
2120
-        //            dr["zongshu"] = totalnum;
2121
-
2122
-        //            dtnew.Rows.Add(dr);
2123
-        //        }
2124
-        //    }
2125
-        //    dtnew.DefaultView.Sort = "zongshu DESC";
2126
-        //    DataTable dtTemp = dtnew.DefaultView.ToTable();
2127
-        //    for (int h = 0; h < dtTemp.Rows.Count; h++)
2128
-        //    {
2129
-        //        dtTemp.Rows[h]["paiming"] = h + 1;
2130
-        //    }
2131
-        //    //计算总计
2132
-        //    DataRow dr0 = dtTemp.NewRow();
2133
-        //    dr0["paiming"] = "";
2134
-        //    dr0["xiangzhen"] = "总计";
2135
-        //    dr0["zongshu"] = leiji;
2136
-        //    dtTemp.Rows.Add(dr0);
2137
-
2138
-        //    //return res;
2139
-        //    //导出dtnew
2140
-        //    NPOIHelper npoi = new NPOIHelper();
2141
-        //    string[] col = { "排名", "乡镇与单位", "总数" };
2142
-        //    if (npoi.ExportToExcel("乡镇排名统计数据", dtTemp, col) == "")
2143
-        //    {
2144
-        //        return Success("导出成功");
2145
-        //    }
2146
-        //    else
2147
-        //    {
2148
-        //        return Error("导出失败");
2149
-        //    }
2150
-        //}
2151
-        //#endregion
2152
-        // #endregion
1837
+       
1838
+      
2153 1839
 
2154 1840
 
2155 1841
         //3、营业部任务汇总表 根据分配时间 的任务量
@@ -2251,7 +1937,7 @@ namespace CallCenterApi.Interface.Controllers.report
2251 1937
                 drlast["callpercent"] = drlast["callnum"].ToString() == "0" ? "0" : string.Format("{0:F2}%", ((double)(Convert.ToInt32(drlast["callnum"])) / Convert.ToInt32(drlast["tasknum"])) * 100);
2252 1938
                 drlast["exhalationflux"] = deptdt.Select().Sum(x => x.Field<int>("exhalationflux"));
2253 1939
                 drlast["exhalationper"] = drlast["callnum"].ToString() == "0" ? "0" : string.Format("{0:F2}%", ((double)(Convert.ToInt32(drlast["exhalationflux"])) / Convert.ToInt32(drlast["callnum"])) * 100);
2254
-              
1940
+
2255 1941
                 int talklongsum = hjxqdt.Select().Sum(x => x.Field<int>("talklong"));
2256 1942
                 drlast["talklong"] = drlast["exhalationflux"].ToString() == "0" ? "0" : string.Format("{0:F2}", ((double)(talklongsum) / Convert.ToInt32(drlast["exhalationflux"])));
2257 1943
                 deptdt.Rows.Add(drlast);