public ActionResult ContributionAccountToExcel(ContributionAccountQuery query, string strDict) { string msg = string.Empty; try { IAuthorPlatformFacadeService service = ServiceContainer.Instance.Container.Resolve <IAuthorPlatformFacadeService>(); query.JournalID = CurAuthor.JournalID; query.IsReport = true; strDict = Server.UrlDecode(strDict); JavaScriptSerializer s = new JavaScriptSerializer(); Dictionary <string, object> JsonData = (Dictionary <string, object>)s.DeserializeObject(strDict); IDictionary <string, string> dict = ((object[])JsonData.First().Value).Select(p => (Dictionary <string, object>)p).ToDictionary(p => p["key"].ToString(), q => q["value"].ToString()); IList <ContributionAccountEntity> list = new List <ContributionAccountEntity>(); IList <FlowStatusEntity> listFs = new List <FlowStatusEntity>(); IList <FlowContribution> listFc = new List <FlowContribution>(); switch (query.Kind) { case 4: msg = "按过程稿统计收稿量"; listFs = GetContributionProcessList(); break; case 3: msg = "按退稿统计收稿量"; listFc = GetContributionReturnList(); break; case 2: msg = "按作者统计收稿量"; var pager = service.GetContributionAccountListByAuhor(query); if (pager != null) { list = pager.ItemList; } break; case 1: msg = "按基金统计收稿量"; list = service.GetContributionAccountListByFund(query); break; case 0: msg = "按时间统计收稿量"; list = service.GetContributionAccountListByYear(query); break; } if (query.Kind == 1 || query.Kind == 2 || query.Kind == 0) { if (list == null || list.Count <= 0) { return(Content("没有数据不能导出,请先进行查询!")); } RenderToExcel.ExportListToExcel <ContributionAccountEntity>(list, dict , null , msg + "_导出" + DateTime.Now.ToString("yyyy-MM-dd"), false, "xls"); } else if (query.Kind == 3) { if (listFc == null || listFc.Count <= 0) { return(Content("没有数据不能导出,请先进行查询!")); } RenderToExcel.ExportListToExcel <FlowContribution>(listFc, dict , null , msg + "_导出" + DateTime.Now.ToString("yyyy-MM-dd"), false, "xls"); } else if (query.Kind == 4) { if (listFs == null || listFs.Count <= 0) { return(Content("没有数据不能导出,请先进行查询!")); } RenderToExcel.ExportListToExcel <FlowStatusEntity>(listFs, dict , null , msg + "_导出" + DateTime.Now.ToString("yyyy-MM-dd"), false, "xls"); } return(Content("导出成功!")); } catch (Exception ex) { LogProvider.Instance.Error("导出" + msg + "出现异常:" + ex.Message); return(Content("导出" + msg + "异常!")); } }
/// <summary> /// 按基金统计收稿量 /// </summary> /// <returns></returns> private Highcharts GetContributionAccountListByFund() { IAuthorPlatformFacadeService service = ServiceContainer.Instance.Container.Resolve <IAuthorPlatformFacadeService>(); ContributionAccountQuery query = new ContributionAccountQuery(); query.JournalID = JournalID; IList <ContributionAccountEntity> list = service.GetContributionAccountListByFund(query); if (list == null || list.Count == 0) { return(new Highcharts("chart")); } list = list.OrderBy(p => p.FundLevel).ToList(); Highcharts chart = new Highcharts("chart") .InitChart(new Chart { DefaultSeriesType = ChartTypes.Column }) .SetTitle(new Title { Text = "按基金统计收稿量" }) .SetXAxis(new XAxis { Categories = list.Select(p => p.FundName).ToArray <string>(), Title = new XAxisTitle { Text = "基金级别" } }) .SetYAxis(new YAxis { Min = 0, Title = new YAxisTitle { Text = "收稿量", Align = AxisTitleAligns.High } }) .SetTooltip(new Tooltip { Formatter = "function() { return ''+ this.series.name +': '+ this.y; }" }) .SetPlotOptions(new PlotOptions { Column = new PlotOptionsColumn { PointPadding = 0.2, BorderWidth = 0, PointWidth = 20 } }) .SetLegend(new Legend { Layout = Layouts.Vertical, Align = HorizontalAligns.Right, VerticalAlign = VerticalAligns.Top, Floating = true, BorderWidth = 1, BackgroundColor = ColorTranslator.FromHtml("#FFFFFF"), Shadow = true }) .SetCredits(new Credits { Enabled = false }) .SetSeries(new[] { new Series { Name = "收稿量", Data = new Data(list.Select(p => (object)p.Account).ToArray <object>()) } }); return(chart); }