Пример #1
0
        /// <summary>
        /// get bond issue amount statistical data
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public IEnumerable <BondIssueAmount> GetBondIssueAmountNew(BondIssueAmountParams param)
        {
            var table   = GetBondIssueAmountDtNew(param.Type, param.StartDate, param.EndDate, param.Unit, string.Join(",", param.TypeList.ToArray()), param.UseSubType ? 1 : 0, param.SubType);
            var pResult = DataTableSerializer.ToList <BondIssueAmount>(table);

            return(pResult);
        }
Пример #2
0
        /// <summary>
        /// Get bond issue amouont statitical data
        /// </summary>
        /// <param name="reportParams"></param>
        /// <returns></returns>
        public IEnumerable <BondIssueAmount> GetIssueAmount(BondIssueAmountParams reportParams)
        {
            Dictionary <string, int> typeOrderDic = CacheGet <Dictionary <string, int> >("TypeOrder");

            if (typeOrderDic == null)
            {
                typeOrderDic = BondReportRepository.GetTypeOrder();
                CacheSet("TypeOrder", typeOrderDic);
            }
            return(BondReportRepository.GetBondIssueAmountNew(reportParams));
        }
Пример #3
0
        public ActionResult GetIssueAmountReportContent(int reportId, string reportName, string type, string typeList, string useSubType, string subType, string startDate, string endDate, string unit)
        {
            var param = new BondIssueAmountParams
            {
                Type       = type,
                TypeList   = typeList.Split(',').ToList(),
                UseSubType = useSubType == "true",
                SubType    = subType,
                StartDate  = DateTime.Parse(startDate),
                EndDate    = DateTime.Parse(endDate),
                Unit       = unit
            };

            IEnumerable <BondIssueAmount> topGrid;
            IEnumerable <BondDetail>      bottomGrid;

            GetIssueAmountReportData(param, out topGrid, out bottomGrid);
            var model = new BondIssueAmountReport(
                reportId,
                reportName,
                HtmlUtil.GetUnitOptionByKey(unit),     // for display
                topGrid, bottomGrid);

            if (topGrid == null || topGrid.Count() == 0)
            {
                return(new EmptyResult());
            }

            ViewData["StartDate"]      = param.StartDate;
            ViewData["EndDate"]        = param.EndDate;
            ViewData["Type"]           = param.Type;
            ViewData["TypeList"]       = typeList;
            ViewData["SubType"]        = param.SubType;
            ViewData["UseSubType"]     = param.UseSubType && type != subType;
            ViewData["UseSecType"]     = (param.UseSubType && type != subType) ? "y" : "n";
            ViewData["Unit"]           = param.Unit;
            ViewData["TopGridName"]    = model.TopGridName;
            ViewData["TypeValue"]      = model.TopGrid.Select(t => t.Type).First();
            ViewData["SubTypeValue"]   = "";
            ViewData["TopGridName"]    = model.TopGridName;
            ViewData["BottomGridName"] = model.BottomGridName;

            return(View("_IssueAmountReportContent", model));
        }
Пример #4
0
        private void GetIssueAmountReportData(BondIssueAmountParams param, out IEnumerable <BondIssueAmount> topGrid, out IEnumerable <BondDetail> bottomGrid)
        {
            var detailParam = new BondDetailParams();

            if (param == null)
            {
                int year = DateTime.Now.Year;
                int month;

                if (DateTime.Now.Month == 1)
                {
                    year  = DateTime.Now.Year - 1;
                    month = 12;
                }
                else
                {
                    month = DateTime.Now.Month - 1;
                }

                param            = new BondIssueAmountParams();
                param.Type       = "Bond_Class";
                param.TypeList   = UIStaticDataCache.Instance.AssetClass.Select(re => re.Value).ToList();
                param.Unit       = "100M";
                param.UseSubType = false;
                param.SubType    = "";
                param.StartDate  = new DateTime(year, month, 1);
                param.EndDate    = DateTime.Now;

                _log.Error("GetIssueAmount Data 1:" + DateTime.Now);
                topGrid = ReportService.GetIssueAmount(param).ToList();
                _log.Error("GetIssueAmount Data 2:" + DateTime.Now);
                if (topGrid.Count() == 0)
                {
                    bottomGrid = new List <BondDetail>();
                }
                else
                {
                    detailParam.Type       = ConstValues.Type_Bond_Class;
                    detailParam.TypeValue  = topGrid.Select(t => t.Type).First();
                    detailParam.StartDate  = new DateTime(year, month, 1);
                    detailParam.EndDate    = DateTime.Now;
                    detailParam.UseSubType = false;
                    detailParam.ItemList   = detailParam.TypeValue;
                    detailParam.StartPage  = 1;
                    detailParam.PageSize   = 300;
                    bottomGrid             = ReportService.GetBondDetailByTypeAndSubType(detailParam);
                    _log.Error("GetIssueAmount Data 3:" + DateTime.Now);
                }
            }
            else
            {
                _log.Error("GetIssueAmount Data 4:" + DateTime.Now);
                topGrid = ReportService.GetIssueAmount(param);
                _log.Error("GetIssueAmount Data 5:" + DateTime.Now);
                var bondIssueAmounts = topGrid as BondIssueAmount[] ?? topGrid.ToArray();
                if (bondIssueAmounts.Count() == 0)
                {
                    bottomGrid = new List <BondDetail>();
                }
                else
                {
                    detailParam.Type       = param.Type;
                    detailParam.TypeValue  = bondIssueAmounts.Select(t => t.Type).First();
                    detailParam.StartDate  = param.StartDate;
                    detailParam.EndDate    = param.EndDate;
                    detailParam.UseSubType = false;
                    detailParam.PageSize   = 300;
                    detailParam.StartPage  = 1;
                    detailParam.ItemList   = string.Join(",", param.TypeList);
                    bottomGrid             = ReportService.GetBondDetailByTypeAndSubType(detailParam);
                }

                _log.Error("GetIssueAmount Data 6:" + DateTime.Now);
            }
        }
Пример #5
0
        public ActionResult ExportReport(string reportId, string startDate, string endDate, string type, string typeValue, string typeList, string subType, string subTypeValue, string useSecType, string unit, string isParent, string reportName, string reportType, int startPage = 1)
        {
            IEnumerable <BondIssueAmountExport> summaryExport;
            IEnumerable <BondDetail>            detailExport;
            BondIssueAmountParams summaryParam;
            BondDetailParams      detailParam;

            string[] headers;
            string[] rowKeys;

            if (reportType == "summary")
            {
                summaryParam = new BondIssueAmountParams
                {
                    Type       = type,
                    TypeList   = string.IsNullOrEmpty(typeList) ? null : typeList.Split(',').ToList(),
                    UseSubType = useSecType == "y",
                    SubType    = subType,
                    StartDate  = DateTime.Parse(startDate),
                    EndDate    = DateTime.Parse(endDate),
                    Unit       = unit
                };

                var summaryReport = ReportService.GetIssueAmount(summaryParam);
                summaryExport = (from s in summaryReport
                                 select new BondIssueAmountExport
                {
                    TypeName = s.IsParent == 1 ? (string.IsNullOrEmpty(s.Type) ? Resources.Global.Tip_Other : s.TypeName) : (string.IsNullOrEmpty(s.SubType) ? Resources.Global.Tip_Other : s.SubTypName),
                    Issues = s.Issues,
                    IssuesPercent = s.IssuesPercent,
                    IssuesAmount = s.IssuesAmount,
                    IssuesAmountPercent = s.IssuesAmountPercent,
                    LowestIssueRate = s.LowestIssueRate,
                    HighestIssueRate = s.HighestIssueRate,
                    Row_level = s.IsParent == 1 ? "0" : "1"
                }).ToList();
                headers = GetIssueAmountHeader("summary");
                rowKeys = GetIssueAmountCloumns("summary");

                string sumGroupColumnName        = "TypeName";
                string groupedRowLevelColumnName = "Row_level";
                try
                {
                    return(new ExcelResult(summaryExport.AsQueryable(), headers, rowKeys, reportName, reportName, sumGroupColumnName: sumGroupColumnName, groupedRowLevelColumnName: groupedRowLevelColumnName));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                detailParam = new BondDetailParams
                {
                    Type         = type,
                    TypeValue    = typeValue,
                    UseSubType   = (useSecType == "y"), // && !string.IsNullOrEmpty(subTypeValue)) ? true : false,
                    SubType      = subType,
                    SubTypeValue = subTypeValue,
                    IsParent     = isParent == "true",
                    StartDate    = DateTime.Parse(startDate),
                    EndDate      = DateTime.Parse(endDate),
                    ItemList     = typeList,
                    PageSize     = 300,
                    StartPage    = startPage
                };

                detailExport = ReportService.GetBondDetailByTypeAndSubType(detailParam);
                headers      = GetIssueAmountHeader("detail");
                rowKeys      = GetIssueAmountCloumns("detail");
                var bondDetails = detailExport as BondDetail[] ?? detailExport.ToArray();
                bondDetails.ToList().ForEach(r => r.Term = r.Term + (r.OrigAvgLife < 1 ? Resources.Global.Time_Day : Resources.Global.Time_Year));

                string dateFormat = "yyyy-MM-dd";
                try
                {
                    return(new ExcelResult(bondDetails.AsQueryable(), headers, rowKeys, reportName, reportName, specificDateFormat: dateFormat));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }