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);
        }