using CallCenterApi.Common; using CallCenterApi.Interface.Controllers.Base; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Script.Serialization; namespace CallCenterApi.Interface.Controllers { /// /// 大屏公示系统 /// //[Authority] public class InfoController : BaseController { // GET: Info public ActionResult Index() { return View(); } #region 来源渠道 /// /// 获取受理区域数量 /// /// /// /// public ActionResult GetAreaCount24ByDate(string branchcode, DateTime? date, string areaid) { if (date == null) { date = DateTime.Now; } int backtotal = 0; //string sqlwhere = " F_IsDelete=0 "; string sqlwhere = " F_IsDP=1 ";//大屏展示用到的 if (branchcode == "sqs12345") { branchcode = ""; sqlwhere += " and F_IsSQ=0"; } if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { backtotal = 1; sqlwhere += " and F_IsSQ!=1"; } int first = 1; int[] hours = Enumerable.Range(0, 24).ToArray(); decimal[,] countstotal = new decimal[10, 24];//用于计算累计值//固定了10个市县区 decimal[] tcountstotal = new decimal[10]; string[] cols = new string[10]; string[] colsx = new string[1];//用于县数据相加 //List items; List>> items = new List>>(); //IEnumerable>> items; ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?date=" + date.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&signcode=" + signcode; //AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject(); string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { string a = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["cols"].ToString(), "[\r\n\t ]", ""); a = a.Replace("[", ""); a = a.Replace("]", ""); a = a.Replace("\"", ""); cols = a.Split(','); } else { string a = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["cols"].ToString(), "[\r\n\t ]", ""); a = a.Replace("[", ""); a = a.Replace("]", ""); a = a.Replace("\"", ""); colsx = a.Split(','); } //string x = jo0["data"].ToString(); for (int i = 0; i < 10; i++) { string y = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["counts"][i].ToString(), "[\r\n\t ]", ""); y = y.Replace("[", ""); y = y.Replace("]", ""); string[] z = y.Split(','); for (int m = 0; m < z.Length; m++) { if (first == 1) { countstotal[i, m] = decimal.Parse(z[m]); } else if (backtotal == 1) { if (cols[i] == colsx[0]) { countstotal[i, m] += decimal.Parse(z[m]); } } } string p = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["tcounts"].ToString(), "[\r\n\t ]", ""); p = p.Replace("[", ""); p = p.Replace("]", ""); string[] q = p.Split(','); if (backtotal == 1) { if (cols[i] == colsx[0]) { tcountstotal[i] += decimal.Parse(q[0]); } } else { tcountstotal[i] += decimal.Parse(q[i]); } //item计算 if (backtotal == 1) { if (cols[i] == colsx[0]) { var rtlist = jo0["data"]["items"][0].ToJson().ToList>(); for (int r = 0; r < rtlist.Count; r++) { decimal zh = 0; if (items.Count > i) { zh = decimal.Parse(items[i][r]["Count"].ToString()); } rtlist[r]["Count"] = zh + decimal.Parse(rtlist[r]["Count"].ToString()); } //List> li = new List>(); //li.AddRange(rtlist ); items.Add(rtlist); } } else { var rtlist = jo0["data"]["items"][i].ToJson().ToList>(); items.Add(rtlist); } } first = 0; } } } var data = new { hours = hours, cols, counts = countstotal, tcounts = tcountstotal, items }; return Success("成功", data); } /// /// 获取受理区域数量 /// /// /// /// /// public ActionResult GetAreaCountByDate(string branchcode, DateTime? start, DateTime? end, string areaid, int datetype = 0) { DateTime stime = DateTime.Now; DateTime etime = DateTime.Now; if (start != null) { stime = start.Value;//start = DateTime.Now; } if (end != null) { etime = end.Value;//end = DateTime.Now; } if (datetype > 0) { GetStartEndTime(datetype, out stime, out etime); } #region //if (start == null && end == null) //{ // start = DateTime.Now; // end = DateTime.Now; //} //else //{ // if (start == null) { start = DateTime.Now; } // if (end == null) { end = DateTime.Now; } //} #endregion int backtotal = 0; string sqlwhere = " F_IsDP=1 "; if (branchcode == "sqs12345") { branchcode = ""; } if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { backtotal = 1; sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("F_AreaId"); dtnew.Columns.Add("AreaName"); dtnew.Columns.Add("Count"); int first = 1; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); //string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&backtotal=" + backtotal + "&isdpjk=1" + "&signcode=" + signcode; string strparams = "?start=" + stime.ToString("yyyy-MM-dd") + "&end=" + etime.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&backtotal=" + backtotal + "&isdpjk=1" + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; dtnew.Columns.Add("Item", typeof(object)); for (int i = 0; i < dt.Rows.Count; i++) { dtnew.Rows[i]["Item"] = jo0["data"][i]["Item"]; } first = 0; } else { for (int m = 0; m < dtnew.Rows.Count; m++) { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { if (dtnew.Rows[m][1].ToString() == dt1.Rows[i][1].ToString()) { decimal t = decimal.Parse(dtnew.Rows[m][2].ToString()) + decimal.Parse(dt1.Rows[i][2].ToString()); dtnew.Rows[m][2] = t; //后半部分两个datatable相加 DataTable dtitem = new DataTable(); string c = jo0["data"][i]["Item"].ToString(); DataTable dt = HeadToDataTable(jo0["data"][i]["Item"].ToString(), "Item"); dtitem = dt; DataTable dtold = HeadToDataTable(dtnew.Rows[m]["Item"].ToString(), "Item"); for (int j = 0; j < dt.Rows.Count; j++) { for (int n = 0; n < dtold.Rows.Count; n++) { if (dtold.Rows[n][0].ToString() == dt.Rows[j][0].ToString()) { dtitem.Rows[j][0] = dt.Rows[j][0].ToString(); dtitem.Rows[j][1] = decimal.Parse(dtold.Rows[n][1].ToString()) + decimal.Parse(dt.Rows[j][1].ToString()); } } } dtnew.Rows[m]["Item"] = dtitem; } } } } } } } return Success("成功", dtnew); } /// /// 获取来源百分比 /// /// /// /// /// public ActionResult GetSourcePercentByDate(string branchcode, DateTime? start, DateTime? end, string areaid, int datetype = 0) { DateTime stime = DateTime.Now; DateTime etime = DateTime.Now; if (start != null) { stime = start.Value;//start = DateTime.Now; } if (end != null) { etime = end.Value;//end = DateTime.Now; } if (datetype > 0) { GetStartEndTime(datetype, out stime, out etime); } #region //if (start == null && end == null) //{ // start = DateTime.Now; // end = DateTime.Now; //} //else //{ // if (start == null) { start = DateTime.Now; } // if (end == null) { end = DateTime.Now; } //} #endregion string sqlwhere = " F_IsDP=1 "; if (branchcode == "sqs12345") { branchcode = ""; } if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("Id"); dtnew.Columns.Add("Source"); dtnew.Columns.Add("Count"); dtnew.Columns.Add("Percent"); int first = 1; decimal totalcount = 0;//用于计算百分比 #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + stime.ToString("yyyy-MM-dd") + "&end=" + etime.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&isdpjk=1" + "&signcode=" + signcode; //string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&isdpjk=1" + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; dtnew.Columns.Add("Item", typeof(object)); for (int i = 0; i < dt.Rows.Count; i++) { dtnew.Rows[i]["Item"] = jo0["data"][i]["Item"]; } first = 0; } else { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { for (int j = 0; j < dtnew.Rows.Count; j++) { if (dtnew.Rows[j]["Source"].ToString() == dt1.Rows[i]["Source"].ToString()) { decimal t = decimal.Parse(dtnew.Rows[j][2].ToString()) + decimal.Parse(dt1.Rows[i][2].ToString()); //totalcount += t; dtnew.Rows[j][2] = t; } } } //后半部分两个datatable相加 for (int i = 0; i < dtnew.Rows.Count; i++) { DataTable dtitem = new DataTable(); string c = jo0["data"][i]["Item"].ToString(); DataTable dt = HeadToDataTable(jo0["data"][i]["Item"].ToString(), "Item"); dtitem = dt; DataTable dtold = HeadToDataTable(dtnew.Rows[i]["Item"].ToString(), "Item"); for (int j = 0; j < dtold.Rows.Count; j++) { dtitem.Rows[j][1] = decimal.Parse(dtold.Rows[j][1].ToString()) + decimal.Parse(dt.Rows[j][1].ToString()); } dtnew.Rows[i]["Item"] = dtitem; } } //var rtlist = ar.data.ToJson().ToList>(); //result.AddRange(rtlist); } } } for (int i = 0; i < dtnew.Rows.Count; i++) { totalcount += decimal.Parse(dtnew.Rows[i]["Count"].ToString()); } //计算百分比 if (totalcount > 0) { for (int m = 0; m < dtnew.Rows.Count; m++) { dtnew.Rows[m]["Percent"] = Math.Round(decimal.Parse(dtnew.Rows[m]["Count"].ToString()) / totalcount * 100, 2); } } return Success("成功", dtnew); } /// /// 获取来源数量百分比 /// /// /// /// /// public ActionResult GetSourceByDate(string branchcode, DateTime? start, DateTime? end, string areaid) { if (start == null && end == null) { start = DateTime.Now; end = DateTime.Now; } else { if (start == null) { start = DateTime.Now; } if (end == null) { end = DateTime.Now; } } string sqlwhere = " F_IsDP=1 "; if (branchcode == "sqs12345") { branchcode = ""; } if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("Id"); dtnew.Columns.Add("Source"); dtnew.Columns.Add("Count"); //dtnew.Columns.Add("Percent"); int first = 1; decimal totalcount = 0; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&isdpjk=1" + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; //dtnew.Columns.Add("Percent", typeof(object)); first = 0; } else { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { for (int m = 0; m < dtnew.Rows.Count; m++) { if (dtnew.Rows[m][0].ToString() == dt1.Rows[i][0].ToString()) { decimal t = decimal.Parse(dtnew.Rows[m][2].ToString()) + decimal.Parse(dt1.Rows[i][2].ToString()); dtnew.Rows[m][2] = t; if (dtnew.Rows[m]["Source"].ToString() == "总计") { totalcount = t; } } } } } } } } //计算百分比 //dtnew.Columns.Add("Percent", typeof(object)); if (totalcount > 0) { for (int m = 0; m < dtnew.Rows.Count; m++) { dtnew.Rows[m]["Percent"] = Math.Round(decimal.Parse(dtnew.Rows[m]["Count"].ToString()) / totalcount * 100, 2).ToString() + "%"; } } return Success("成功", dtnew); } #region 20190704 /// /// 获取受理区域数量 /// /// /// /// /// public ActionResult GetAreaCountByDateNew(string branchcode, DateTime? start, DateTime? end, string areaid, int datetype = 0) { DateTime stime = DateTime.Now.AddDays(-30).Date;//DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;//当月第一天 DateTime etime = DateTime.Now; string strstart = ""; string strend = ""; if (start != null) { stime = start.Value;//start = DateTime.Now; } if (end != null) { etime = end.Value;//end = DateTime.Now; } if (datetype > 0) { GetStartEndTime(datetype, out stime, out etime); } strstart = stime.ToString("yyyy-MM-dd"); strend = etime.ToString("yyyy-MM-dd"); #region //string strstart = ""; string strend = ""; //if (start != null) // strstart = start.Value.ToString("yyyy-MM-dd"); //else // strstart = DateTime.Now.ToString("yyyy-MM-01"); //if (end != null) // strend = end.Value.ToString("yyyy-MM-dd"); //else // strend = DateTime.Now.ToString("yyyy-MM-dd"); #endregion int backtotal = 0; string sqlwhere = " F_IsDP=1 "; if (branchcode == "sqs12345") { branchcode = ""; } if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { backtotal = 1; sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("AreaName"); dtnew.Columns.Add("SLCount"); dtnew.Columns.Add("JACount"); dtnew.Columns.Add("MYCount"); dtnew.Columns.Add("PJCount"); dtnew.Columns.Add("JARate"); dtnew.Columns.Add("MYRate"); int first = 1; decimal totalsl = 0; decimal totalja = 0; decimal totalmy = 0; decimal totalpj = 0; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + strstart + "&end=" + strend + "&areaid=" + areaid + "&backtotal=" + backtotal + "&isdpjk=1" + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; dtnew.Columns.Add("JARate"); dtnew.Columns.Add("MYRate"); first = 0; } else { for (int m = 0; m < dtnew.Rows.Count; m++) { decimal t = decimal.Parse(dtnew.Rows[m]["SLCount"].ToString()); decimal t1 = decimal.Parse(dtnew.Rows[m]["JACount"].ToString()); decimal t2 = decimal.Parse(dtnew.Rows[m]["MYCount"].ToString()); decimal t3 = decimal.Parse(dtnew.Rows[m]["PJCount"].ToString()); #region 县级筛选获取 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { if (dtnew.Rows[m]["AreaName"].ToString() == dt1.Rows[i]["AreaName"].ToString()) { t += decimal.Parse(dt1.Rows[i]["SLCount"].ToString()); t1 += decimal.Parse(dt1.Rows[i]["JACount"].ToString()); t2 += decimal.Parse(dt1.Rows[i]["MYCount"].ToString()); t3 += decimal.Parse(dt1.Rows[i]["PJCount"].ToString()); } } #endregion dtnew.Rows[m]["SLCount"] = t; dtnew.Rows[m]["JACount"] = t1; dtnew.Rows[m]["MYCount"] = t2; dtnew.Rows[m]["PJCount"] = t3; if (t > 0) dtnew.Rows[m]["JARate"] = Math.Round(t1 / t * 100, 2).ToString() + "%"; else dtnew.Rows[m]["JARate"] = "0"; if (t3 > 0) dtnew.Rows[m]["MYRate"] = Math.Round(t2 / t3 * 100, 2).ToString() + "%"; else dtnew.Rows[m]["MYRate"] = "0"; } } } } } #region 计算总计 for (int m = 0; m < dtnew.Rows.Count; m++) { totalsl += decimal.Parse(dtnew.Rows[m]["SLCount"].ToString()); totalja += decimal.Parse(dtnew.Rows[m]["JACount"].ToString()); totalmy += decimal.Parse(dtnew.Rows[m]["MYCount"].ToString()); totalpj += decimal.Parse(dtnew.Rows[m]["PJCount"].ToString()); } DataRow drNew = dtnew.NewRow(); drNew["AreaName"] = "总计"; drNew["SLCount"] = totalsl; drNew["JACount"] = totalja; drNew["MYCount"] = totalmy; drNew["PJCount"] = totalpj; if (totalsl > 0) drNew["JARate"] = Math.Round(totalja / totalsl * 100, 2).ToString() + "%"; else drNew["JARate"] = "0"; if (totalpj > 0) drNew["MYRate"] = Math.Round(totalmy / totalpj * 100, 2).ToString() + "%"; else drNew["MYRate"] = "0"; dtnew.Rows.Add(drNew); #endregion return Success("成功", dtnew); } /// /// 获取来源数量 /// /// /// /// /// public ActionResult GetSourceByDateNew(string branchcode, DateTime? start, DateTime? end, string areaid) { string strstart = ""; string strend = ""; if (start != null) strstart = start.Value.ToString("yyyy-MM-dd"); else strstart = DateTime.Now.AddDays(-30).Date.ToString("yyyy-MM-dd");//DateTime.Now.ToString("yyyy-MM-01"); if (end != null) strend = end.Value.ToString("yyyy-MM-dd"); else strend = DateTime.Now.ToString("yyyy-MM-dd"); string sqlwhere = " F_IsDP=1 "; if (branchcode == "sqs12345") { branchcode = ""; } if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("Source"); dtnew.Columns.Add("Count"); int first = 1; decimal totalcount = 0; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + strstart + "&end=" + strend + "&areaid=" + areaid + "&isdpjk=1" + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; first = 0; } else { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { for(int j = 0; j < dtnew.Rows.Count; j++) { if (dtnew.Rows[j]["Source"].ToString() == dt1.Rows[i]["Source"].ToString()) { decimal t = decimal.Parse(dtnew.Rows[j]["Count"].ToString()) + decimal.Parse(dt1.Rows[i]["Count"].ToString()); dtnew.Rows[j]["Count"] = t; } } } } } } } for (int i = 0; i < dtnew.Rows.Count; i++) { if(dtnew.Rows[i]["Source"].ToString()!="总计") { totalcount+= decimal.Parse(dtnew.Rows[i]["Count"].ToString()); } } for (int i = 0; i < dtnew.Rows.Count; i++) { if (dtnew.Rows[i]["Source"].ToString() == "总计") { dtnew.Rows[i]["Count"] = totalcount; } decimal t = decimal.Parse(dtnew.Rows[i]["Count"].ToString()); if (totalcount > 0) { dtnew.Rows[i]["Rate"] = Math.Round(t / totalcount * 100, 2).ToString() + "%"; } else dtnew.Rows[i]["Rate"] = "0"; } return Success("成功", dtnew); } #endregion #endregion #region 接单部门 /// /// 接单情况汇总(月份) /// /// /// public ActionResult GetStateCountMonthByDate(string branchcode, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } decimal[,] countstotal = new decimal[10, 12];//用于计算累计值 string[] cols = new string[10]; string[] months = new string[12]; ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?signcode=" + signcode + "&areaid=" + areaid; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { string a = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["cols"].ToString(), "[\r\n\t ]", ""); a = a.Replace("[", ""); a = a.Replace("]", ""); a = a.Replace("\"", ""); cols = a.Split(','); string b = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["months"].ToString(), "[\r\n\t ]", ""); b = b.Replace("[", ""); b = b.Replace("]", ""); b = b.Replace("\"", ""); months = b.Split(','); for (int i = 0; i < 10; i++) { string y = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["counts"][i].ToString(), "[\r\n\t ]", ""); y = y.Replace("[", ""); y = y.Replace("]", ""); string[] z = y.Split(','); for (int m = 0; m < z.Length; m++) { countstotal[i, m] += decimal.Parse(z[m]); } } } } } var data = new { months, cols, counts = countstotal }; return Success("成功", data); } /// /// 获取承办单位数量(因为是获取部门的所以未调整) /// /// /// /// /// /// public ActionResult GetDeptCountByDateNew(string branchcode, DateTime? start, DateTime? end, string areaid, int deptid = 0) { if (branchcode == "sqs12345") { branchcode = ""; } if (start == null && end == null) { start = DateTime.Now; end = DateTime.Now; } else { if (start == null) { start = DateTime.Now; } if (end == null) { end = DateTime.Now; } } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&deptid=" + deptid.ToString() + "&areaid=" + areaid + "&signcode=" + signcode; AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject(); if (ar.state.ToString() == ResultTypes.success.ToString()) { var rtlist = ar.data.ToJson().ToList>(); result.AddRange(rtlist); } } } return Success("成功", result); } /// /// 单位受理处理时间分布 /// /// /// /// public ActionResult GetDealCount24ByDate(string branchcode, DateTime? date, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } if (date == null) { date = DateTime.Now; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } int[] hours = Enumerable.Range(7, 12).ToArray(); int[] acounts = new int[12]; int[] fcounts = new int[12]; ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?date=" + date.Value.ToString("yyyy-MM-dd") + "&signcode=" + signcode + "&areaid=" + areaid; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { for (int i = 0; i < 10; i++) { string p = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["acounts"].ToString(), "[\r\n\t ]", ""); p = p.Replace("[", ""); p = p.Replace("]", ""); string[] q = p.Split(','); acounts[i] += int.Parse(q[i]); string a = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["fcounts"].ToString(), "[\r\n\t ]", ""); a = a.Replace("[", ""); a = a.Replace("]", ""); string[] b = a.Split(','); fcounts[i] += int.Parse(b[i]); } } } } var data = new { hours, acounts, fcounts }; return Success("成功", data); } /// /// 接单情况汇总(月份) /// /// /// /// /// public ActionResult GetStateCountByMonth(string branchcode, string month, string day, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } if (string.IsNullOrEmpty(month)) { month = DateTime.Now.ToString("yyyy-MM"); } if (string.IsNullOrEmpty(day)) { day = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("State"); dtnew.Columns.Add("Name"); dtnew.Columns.Add("Count"); int first = 1; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?month=" + month + "&day=" + day + "&areaid=" + areaid + "&isdpjk=1" + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; first = 0; } else { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { for (int m = 0; m < dtnew.Rows.Count; m++) { if (dtnew.Rows[m][0].ToString() == dt1.Rows[i][0].ToString()) { decimal t = decimal.Parse(dtnew.Rows[m][2].ToString()) + decimal.Parse(dt1.Rows[i][2].ToString()); dtnew.Rows[m][2] = t; } } } } } } } return Success("成功", dtnew); } /// /// 获取部门列表 /// /// public ActionResult GetDeptList(string branchcode) { if (branchcode == "sqs12345") { branchcode = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?signcode=" + signcode; AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject(); if (ar.state.ToString() == ResultTypes.success.ToString()) { var rtlist = ar.data.ToJson().ToList>(); result.AddRange(rtlist); } } } return Success("成功", result); } #endregion #region 投诉类型 /// /// 获取关键词列表 /// /// public ActionResult GetKeyList(string branchcode) { if (branchcode == "sqs12345") { branchcode = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?signcode=" + signcode; AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject(); if (ar.state.ToString() == ResultTypes.success.ToString()) { var rtlist = ar.data.ToJson().ToList>(); result.AddRange(rtlist); } } } return Success("成功", result); } /// /// 接单情况汇总(月份) /// /// /// /// /// public ActionResult GetTypeCountMonthByDate(string branchcode, string start, string end, string areaid, int datetype = 0) { if (branchcode == "sqs12345") { branchcode = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } #region 变量定义 DateTime startdate = DateTime.Now.AddMonths(-12); DateTime enddate = DateTime.Now; if (!string.IsNullOrEmpty(start)) { startdate = DateTime.Parse(start + "-01"); } if (!string.IsNullOrEmpty(end)) { enddate = DateTime.Parse(end + "-01"); } if (datetype > 0) { GetStartEndTime(datetype, out startdate, out enddate); } int cnt = (enddate.Year - startdate.Year) * 12 + enddate.Month - startdate.Month + 1; string[] months = new string[cnt]; decimal[,] counts = new decimal[6, cnt];//用于计算累计值//固定了10个市县区 string[] cols = new string[6]; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + start + "&end=" + end + "&areaid=" + areaid + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { for (int i = 0; i < 6; i++) { string y = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["counts"][i].ToString(), "[\r\n\t ]", ""); y = y.Replace("[", ""); y = y.Replace("]", ""); string[] z = y.Split(','); for (int m = 0; m < z.Length; m++) { counts[i, m] += decimal.Parse(z[m]); } } string a = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["cols"].ToString(), "[\r\n\t ]", ""); a = a.Replace("[", ""); a = a.Replace("]", ""); a = a.Replace("\"", ""); cols = a.Split(','); string p = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["months"].ToString(), "[\r\n\t ]", ""); p = p.Replace("[", ""); p = p.Replace("]", ""); p = p.Replace("\"", ""); months = p.Split(','); } } } var data = new { months, cols, counts }; return Success("成功", data); } /// /// 获取关键词数量 /// /// /// /// /// /// public ActionResult GetKeyCountByDateNew(string branchcode, DateTime? start, DateTime? end, string areaid, int keyid = 0) { if (branchcode == "sqs12345") { branchcode = ""; } if (start == null && end == null) { start = DateTime.Now; end = DateTime.Now; } else { if (start == null) { start = DateTime.Now; } if (end == null) { end = DateTime.Now; } } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("关键字"); dtnew.Columns.Add("咨询"); dtnew.Columns.Add("求助"); dtnew.Columns.Add("投诉"); dtnew.Columns.Add("建议"); dtnew.Columns.Add("表扬"); dtnew.Columns.Add("其他"); dtnew.Columns.Add("合计"); //dtnew.Columns.Add("排名"); int first = 1; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&keyid=" + keyid + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; first = 0; } else { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { for (int m = 0; m < dtnew.Rows.Count; m++) { if (dtnew.Rows[m][0].ToString() == dt1.Rows[i][0].ToString()) { for (int j = 1; j < 8; j++) { decimal t = decimal.Parse(dtnew.Rows[m][j].ToString()) + decimal.Parse(dt1.Rows[i][j].ToString()); dtnew.Rows[m][j] = t; } } } } } } } } //dtnew.Columns.Add("排名"); dtnew.DefaultView.Sort = "合计 DESC"; DataTable dtTemp = dtnew.DefaultView.ToTable(); #region 增加排名 if (dtTemp != null) { //DataColumn autoColumn = new DataColumn("排名", System.Type.GetType("System.Int32")); //dtTemp.Columns.Add(autoColumn); //dtTemp.Columns["排名"].SetOrdinal(0); for (int i = 0; i < dtTemp.Rows.Count; i++) { dtTemp.Rows[i]["排名"] = i + 1; } } #endregion return Success("成功", dtTemp); } /// /// 获取类型数量 /// /// /// /// /// public ActionResult GetTypeCountByDate(string branchcode, DateTime? start, DateTime? end, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } if (start == null && end == null) { start = DateTime.Now; end = DateTime.Now; } else { if (start == null) { start = DateTime.Now; } if (end == null) { end = DateTime.Now; } } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("TypeName"); dtnew.Columns.Add("Count"); int first = 1; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; first = 0; } else { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { for (int m = 0; m < dtnew.Rows.Count; m++) { if (dtnew.Rows[m][0].ToString() == dt1.Rows[i][0].ToString()) { decimal t = decimal.Parse(dtnew.Rows[m][1].ToString()) + decimal.Parse(dt1.Rows[i][1].ToString()); dtnew.Rows[m][1] = t; } } } } //var rtlist = ar.data.ToJson().ToList>(); //result.AddRange(rtlist); } } } return Success("成功", dtnew); } #endregion #region 话务数量 /// /// 坐席闲忙比例 /// /// /// /// /// public ActionResult GetUserStateCount24ByDate(string branchcode, DateTime? start, DateTime? end, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } if (start == null && end == null) { start = DateTime.Now; end = DateTime.Now; } else { if (start == null) { start = DateTime.Now; } if (end == null) { end = DateTime.Now; } } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } int[] hours = Enumerable.Range(0, 24).ToArray(); double[] kxpercents = new double[24]; double[] thpercents = new double[24]; double[] zmpercents = new double[24]; string[] kxcon = new string[24]; string[] thcon = new string[24]; string[] xxcon = new string[24]; int[] con = new int[24]; ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = "GetUserStateNum24ByDate";// RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); //if (!string.IsNullOrEmpty(branchcode)) //{ // return Content(ar);//查询单个时直接返回 //} JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { string y = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["kxcon"].ToString(), "[\r\n\t ]", ""); y = y.Replace("[", ""); y = y.Replace("]", ""); y = y.Replace("\"", ""); string[] z = y.Split(','); string p = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["thcon"].ToString(), "[\r\n\t ]", ""); p = p.Replace("[", ""); p = p.Replace("]", ""); p = p.Replace("\"", ""); string[] q = p.Split(','); string a = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["xxcon"].ToString(), "[\r\n\t ]", ""); a = a.Replace("[", ""); a = a.Replace("]", ""); a = a.Replace("\"", ""); string[] b = a.Split(','); string m = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["con"].ToString(), "[\r\n\t ]", ""); m = m.Replace("[", ""); m = m.Replace("]", ""); m = m.Replace("\"", ""); string[] n = m.Split(','); for (int i = 0; i < hours.Length; i++) { if (kxcon[i] == null) { kxcon[i] = "0"; } if (thcon[i] == null) { thcon[i] = "0"; } if (xxcon[i] == null) { xxcon[i] = "0"; } kxcon[i] = (int.Parse(kxcon[i]) + int.Parse(z[i])).ToString(); thcon[i] = (int.Parse(thcon[i]) + int.Parse(q[i])).ToString(); xxcon[i] = (int.Parse(xxcon[i]) + int.Parse(b[i])).ToString(); con[i] += int.Parse(n[i]); } } } } for (int i = 0; i < hours.Length; i++) { if (con[i] == 0) { kxpercents[i] = 0; thpercents[i] = 0; zmpercents[i] = 0; } else { kxpercents[i] = Math.Round((double.Parse(kxcon[i]) * 100 / con[i]), 2); thpercents[i] = Math.Round((double.Parse(thcon[i]) * 100 / con[i]), 2); zmpercents[i] = Math.Round((double.Parse(xxcon[i]) * 100 / con[i]), 2); } } var data = new { hours, kxpercents, thpercents, zmpercents }; return Success("加载成功", data); } /// /// 话务量实时数据统计 /// /// /// /// public ActionResult GetTelCount24ByDate(string branchcode, DateTime? date, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } if (date == null) { date = DateTime.Now; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } int[] hours = Enumerable.Range(0, 24).ToArray(); int[] rcounts = new int[24];//来电数量 int[] ccounts = new int[24];//接通数量 int[] lcounts = new int[24];//留言数量 int[] gcounts = new int[24];//放弃数量 int[] scounts = new int[24];//骚扰数量 ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?date=" + date.Value.ToString("yyyy-MM-dd") + "&signcode=" + signcode + "&areaid=" + areaid; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { //string x = jo0["data"].ToString(); string y = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["rcounts"].ToString(), "[\r\n\t ]", ""); y = y.Replace("[", ""); y = y.Replace("]", ""); string[] z = y.Split(','); string p = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["ccounts"].ToString(), "[\r\n\t ]", ""); p = p.Replace("[", ""); p = p.Replace("]", ""); string[] q = p.Split(','); string a = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["gcounts"].ToString(), "[\r\n\t ]", ""); a = a.Replace("[", ""); a = a.Replace("]", ""); string[] b = a.Split(','); string m = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["scounts"].ToString(), "[\r\n\t ]", ""); m = m.Replace("[", ""); m = m.Replace("]", ""); string[] n = m.Split(','); for (int i = 0; i < 24; i++) { rcounts[i] += int.Parse(z[i]); ccounts[i] += int.Parse(q[i]); gcounts[i] += int.Parse(b[i]); scounts[i] += int.Parse(n[i]); } } } } var data = new { hours, rcounts, ccounts, //lcounts = lcounts, gcounts, scounts }; return Success("加载成功", data); } /// /// 获取通话数量 /// /// /// /// public ActionResult GetTelCountByDate(string branchcode, DateTime? date, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } if (date == null) { date = DateTime.Now; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } decimal hwcon = 0; decimal lhcon = 0; decimal jtcon = 0; double pjthtimes = 0; double jtl = 0; double thtimes = 0; ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?date=" + date.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { hwcon += decimal.Parse(jo0["data"]["hwcon"].ToString()); lhcon += decimal.Parse(jo0["data"]["lhcon"].ToString()); jtcon += decimal.Parse(jo0["data"]["jtcon"].ToString()); //pjthtimes += decimal.Parse(jo0["data"]["pjthtimes"].ToString()); thtimes += double.Parse(jo0["data"]["thtimes"].ToString()); //jtl += decimal.Parse(jo0["data"]["jtl"].ToString()); if (hwcon > 0) { jtl = Math.Round((double.Parse(jtcon.ToString()) * 100 / double.Parse(hwcon.ToString())), 2); } if (jtcon > 0) { pjthtimes = Math.Round(thtimes / double.Parse(jtcon.ToString())); } } } } var data = new { hwcon = hwcon, lhcon = lhcon, jtcon = jtcon, pjthtimes = pjthtimes, jtl = jtl }; return Success("加载成功", data); } #region 20190702 /// /// 获取关键词数量 /// /// /// /// public ActionResult GetKeyCountRankByDate(string branchcode, DateTime? start, DateTime? end, int datetype = 0, int keyid = 0) { DateTime stime = DateTime.Now.AddDays(-30).Date;//DateTime.Now; DateTime etime = DateTime.Now; if (start != null) { stime = start.Value;//start = DateTime.Now; } if (end != null) { etime = end.Value;//end = DateTime.Now; } if(datetype>0) { GetStartEndTime(datetype, out stime, out etime); } if (branchcode == "sqs12345") { branchcode = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); //string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&keyid=" + keyid + "&signcode=" + signcode; string strparams = "?start=" + stime.ToString("yyyy-MM-dd") + "&end=" + etime.ToString("yyyy-MM-dd") + "&keyid=" + keyid + "&signcode=" + signcode; AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject(); if (ar.state.ToString() == ResultTypes.success.ToString()) { var rtlist = ar.data.ToJson().ToList>(); result.AddRange(rtlist); } } } return Success("成功", result); } /// /// 获取单位关键词数量(new) /// /// /// /// public ActionResult GetDeptKeyCountByDateNew(string branchcode, DateTime? start, DateTime? end, int deptid = 0, int datetype = 0, int keyid = 0) { DateTime stime = DateTime.Now.AddDays(-30).Date;//DateTime.Now; DateTime etime = DateTime.Now; if (start != null) { stime = start.Value;//start = DateTime.Now; } if (end != null) { etime = end.Value;//end = DateTime.Now; } if (datetype > 0) { GetStartEndTime(datetype, out stime, out etime); } #region //if (start == null) //{ // start = DateTime.Now; //} //if (end == null) //{ // end = DateTime.Now; //} #endregion if (branchcode == "sqs12345") { branchcode = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); //string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&deptid=" + deptid + "&keyid=" + keyid + "&signcode=" + signcode; string strparams = "?start=" + stime.ToString("yyyy-MM-dd") + "&end=" + etime.ToString("yyyy-MM-dd") + "&deptid=" + deptid + "&keyid=" + keyid + "&signcode=" + signcode; AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject(); if (ar.state.ToString() == ResultTypes.success.ToString()) { var rtlist = ar.data.ToJson().ToList>(); result.AddRange(rtlist); } } } return Success("成功", result); } #endregion #region 20191125 zhengbingbing 大屏增加工单热点分布 /// /// 工单热点分布 /// /// /// /// /// /// /// /// public ActionResult GetHotspotMap(DateTime? start, DateTime? end, int deptid = 0, int keyid = 0, int sourcearea = 0, int source = 0) { if (start == null) { start = DateTime.Now.AddDays(-3); } if (end == null) { end = DateTime.Now; } string sqlwhere = " F_IsDP=1 and F_Code='sqs12345' "; ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?start=" + start.Value.ToString("yyyy-MM-dd") + "&end=" + end.Value.ToString("yyyy-MM-dd") + "&deptid=" + deptid + "&keyid=" + keyid + "&sourcearea=" + sourcearea + "&source=" + source + "&signcode=" + signcode; AjaxResult ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams).ToObject(); if (ar.state.ToString() == ResultTypes.success.ToString()) { var rtlist = ar.data.ToJson().ToList(); result.AddRange(rtlist); } } } return Success("成功", result); } #endregion #endregion #region 中心大数据 /// /// 工单类型各数量 /// /// /// public ActionResult GetTypeCountNew(string branchcode, string areaid,string date) { if (branchcode == "sqs12345") { branchcode = ""; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } if (string.IsNullOrEmpty(date)) date = DateTime.Now.ToString("yyyy-MM-dd"); #region 定义新表 DataTable dtnew = new DataTable(); dtnew.Columns.Add("TypeName"); dtnew.Columns.Add("DayCount"); dtnew.Columns.Add("MonthCount"); dtnew.Columns.Add("TotalCount"); dtnew.Columns.Add("Percent"); int first = 1; Int64 totalcount = 0; #endregion ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?signcode=" + signcode + "&areaid=" + areaid+"&date="+ date; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); if (!string.IsNullOrEmpty(branchcode)) { return Content(ar);//查询单个时直接返回 } JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { if (first == 1) { DataTable dt = HeadToDataTable(jo0["data"].ToString(), "Item"); dtnew = dt; first = 0; } else { //前部分相加 DataTable dt1 = HeadToDataTable(jo0["data"].ToString(), "Item"); for (int i = 0; i < dt1.Rows.Count; i++) { for (int m = 0; m < dtnew.Rows.Count; m++) { if (dtnew.Rows[m][0].ToString() == dt1.Rows[i][0].ToString()) { for (int j = 1; j < 4; j++) { decimal t = decimal.Parse(dtnew.Rows[m][j].ToString()) + decimal.Parse(dt1.Rows[i][j].ToString()); dtnew.Rows[m][j] = t; } } } //totalcount += Int64.Parse(dtnew.Rows[i]["TotalCount"].ToString()); } } //var rtlist = ar.data.ToJson().ToList>(); //result.AddRange(rtlist); } } } #region 计算比例 for (int j = 0; j < dtnew.Rows.Count; j++) { totalcount += Int64.Parse(dtnew.Rows[j]["TotalCount"].ToString()); } if (totalcount > 0) { for (int j = 0; j < dtnew.Rows.Count; j++) { dtnew.Rows[j]["Percent"] = Math.Round(decimal.Parse(dtnew.Rows[j]["TotalCount"].ToString()) / totalcount * 100, 2); } } #endregion dtnew.DefaultView.Sort = "MonthCount DESC"; dtnew = dtnew.DefaultView.ToTable(); return Success("成功", dtnew); } /// /// 接通率统计 /// /// /// /// public ActionResult GetTelRate24ByDate(string branchcode, DateTime? date, string areaid) { if (branchcode == "sqs12345") { branchcode = ""; } if (date == null) { date = DateTime.Now; } string sqlwhere = " F_IsDP=1 "; if (!string.IsNullOrEmpty(branchcode)) { sqlwhere += " and F_Code='" + branchcode + "'"; } else { sqlwhere += " and F_IsSQ!=1"; } int[] hours = Enumerable.Range(0, 24).ToArray(); int[] jt = new int[24]; int[] zs = new int[24]; double[] rates = new double[24]; ArrayList result = new ArrayList(); var list = new BLL.T_Branch_List().GetModelList(sqlwhere); string controllername = RouteData.Values["controller"].ToString(); string actionname = "GetTelNum24ByDate";// RouteData.Values["action"].ToString(); foreach (var l in list) { if (!string.IsNullOrEmpty(l.F_Sign) && !string.IsNullOrEmpty(l.F_Url)) { if (!string.IsNullOrEmpty(l.F_AreaId)) { areaid = l.F_AreaId; } string signcode = CommonHelper.getsigncode(controllername, actionname, l.F_Sign); string strparams = "?date=" + date.Value.ToString("yyyy-MM-dd") + "&areaid=" + areaid + "&signcode=" + signcode; string ar = HttpMethods.HttpGet(l.F_Url + "/" + controllername + "/" + actionname + strparams);//.ToObject(); //if (!string.IsNullOrEmpty(branchcode)) //{ // return Content(ar);//查询单个时直接返回 //} JObject jo0 = (JObject)JsonConvert.DeserializeObject(ar); if (jo0 != null && jo0["state"].ToString() == ResultTypes.success.ToString()) { //string x = jo0["data"].ToString(); string y = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["jt"].ToString(), "[\r\n\t ]", ""); y = y.Replace("[", ""); y = y.Replace("]", ""); string[] z = y.Split(','); string p = System.Text.RegularExpressions.Regex.Replace(jo0["data"]["zs"].ToString(), "[\r\n\t ]", ""); p = p.Replace("[", ""); p = p.Replace("]", ""); string[] q = p.Split(','); for (int i = 0; i < 24; i++) { jt[i] += int.Parse(z[i]); zs[i] += int.Parse(q[i]); } } } } for (int j = 0; j < 24; j++) { rates[j] = zs[j] > 0 ? Math.Round(((double)jt[j] * 100 / zs[j]), 2) : 0; } var data = new { hours, rates }; return Success("成功", data); } #endregion #region 数据处理 /// /// Json 字符串 转换为 DataTable数据集合 /// /// /// public static DataTable ToDataTable(string json, string dicstr)//Item { DataTable dataTable = new DataTable(); //实例化 DataTable result; try { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = javaScriptSerializer.Deserialize(json); if (arrayList.Count > 0) { foreach (Dictionary dictionary in arrayList) { if (dictionary.Keys.Count() == 0) { result = dataTable; return result; } //Columns if (dataTable.Columns.Count == 0) { foreach (string current in dictionary.Keys) { if (current != dicstr) dataTable.Columns.Add(current, dictionary[current].GetType()); else { ArrayList list = dictionary[current] as ArrayList; foreach (Dictionary dic in list) { foreach (string key in dic.Keys) { dataTable.Columns.Add(key, dic[key].GetType()); } break; } } } } //Rows //string root = ""; List cname = new List(); foreach (string current in dictionary.Keys) { if (current != dicstr) { //root = current; //dataRow[root] = dictionary[root]; cname.Add(current); } else { ArrayList list = dictionary[current] as ArrayList; foreach (Dictionary dic in list) { DataRow dataRow = dataTable.NewRow(); foreach (var li in cname) { if (dictionary[li] == null) { dataRow[li] = -1; } else { dataRow[li] = dictionary[li]; } } //dataRow[root] = dictionary[root]; foreach (string key in dic.Keys) { dataRow[key] = dic[key]; } dataTable.Rows.Add(dataRow); } } } } } } catch { } result = dataTable; return result; } public static DataTable HeadToDataTable(string json, string dicstr)//Item { DataTable dataTable = new DataTable(); //实例化 DataTable result; try { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = javaScriptSerializer.Deserialize(json); if (arrayList.Count > 0) { foreach (Dictionary dictionary in arrayList) { if (dictionary.Keys.Count() == 0) { result = dataTable; return result; } //Columns if (dataTable.Columns.Count == 0) { foreach (string current in dictionary.Keys) { if (current != dicstr) dataTable.Columns.Add(current, dictionary[current].GetType()); //else //{ // ArrayList list = dictionary[current] as ArrayList; // foreach (Dictionary dic in list) // { // foreach (string key in dic.Keys) // { // dataTable.Columns.Add(key, dic[key].GetType()); // } // break; // } //} } } //Rows //string root = ""; List cname = new List(); DataRow dataRow = dataTable.NewRow(); foreach (string current in dictionary.Keys) { if (current != dicstr) { //root = current; //dataRow[root] = dictionary[root]; cname.Add(current); } foreach (var li in cname) { if (dictionary[li] == null) { dataRow[li] = -1; } else { dataRow[li] = dictionary[li]; } } //dataRow[root] = dictionary[root]; //else //{ // ArrayList list = dictionary[current] as ArrayList; // foreach (Dictionary dic in list) // { // DataRow dataRow = dataTable.NewRow(); // foreach (var li in cname) // { // dataRow[li] = dictionary[li]; // } // //dataRow[root] = dictionary[root]; // foreach (string key in dic.Keys) // { // dataRow[key] = dic[key]; // } // dataTable.Rows.Add(dataRow); // } //} } dataTable.Rows.Add(dataRow); } } } catch (Exception ex) { } result = dataTable; return result; } public static DataTable ItemToDataTable(string json, string dicstr)//Item { DataTable dataTable = new DataTable(); //实例化 DataTable result; try { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = javaScriptSerializer.Deserialize(json); if (arrayList.Count > 0) { foreach (Dictionary dictionary in arrayList) { if (dictionary.Keys.Count() == 0) { result = dataTable; return result; } //Columns if (dataTable.Columns.Count == 0) { foreach (string current in dictionary.Keys) { if (current != dicstr) { }//dataTable.Columns.Add(current, dictionary[current].GetType()); else { ArrayList list = dictionary[current] as ArrayList; foreach (Dictionary dic in list) { foreach (string key in dic.Keys) { dataTable.Columns.Add(key, dic[key].GetType()); } break; } } } } //Rows //string root = ""; List cname = new List(); foreach (string current in dictionary.Keys) { if (current != dicstr) { //root = current; //dataRow[root] = dictionary[root]; //cname.Add(current); } else { ArrayList list = dictionary[current] as ArrayList; foreach (Dictionary dic in list) { DataRow dataRow = dataTable.NewRow(); //foreach (var li in cname) //{ //dataRow[li] = dictionary[li]; //} //dataRow[root] = dictionary[root]; foreach (string key in dic.Keys) { dataRow[key] = dic[key]; } dataTable.Rows.Add(dataRow); } } } } } } catch { } result = dataTable; return result; } #endregion #region 获取时间 /// /// 获取当天、本周、本月、本年、累计时间 /// /// /// /// public void GetStartEndTime(int datetype, out DateTime start, out DateTime end) { var datenow = DateTime.Now; var datestart = datenow; var dateend = datenow; switch (datetype) { case 0://当天 break; case 1://本周 int n = (int)datenow.DayOfWeek == 0 ? 7 : (int)datenow.DayOfWeek; datestart = datenow.AddDays(1 - n);//本周周一 dateend = datestart.AddDays(6);//本周周日 break; case 2://本月 datestart = datenow.AddDays(1 - datenow.Day); //本月月初 dateend = datestart.AddMonths(1).AddDays(-1); //本月月末 break; case 3://本年 datestart = new DateTime(datenow.Year, 1, 1); //本年年初 dateend = new DateTime(datenow.Year, 12, 31); //本年年末 break; default: break; } start = datestart; end = dateend; } #endregion } }