/// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="requestEntity"></param>
        /// <param name="responseEntity"></param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            // 定义接收客户端参数的变量
            OverDueReportFilter filter
                = ServiceUtility.ConvertToFilterFromDict <OverDueReportFilter>(requestEntity.Parameters);

            filter.UserId = responseEntity.UserId;

            //检索数据获取出审核员贷后客户逾期情况汇总情况表
            Singleton <GetOverDueTotalSearchResultBLL> .Instance.SearchData(filter, responseEntity);
        }
Exemple #2
0
        /// <summary>
        /// 获取检索数据的存储过程参数列表
        /// </summary>
        /// <param name="baseFilter"></param>
        /// <returns></returns>
        protected override IDictionary <string, object> GetSearchSpInParams(BaseFilter baseFilter)
        {
            OverDueReportFilter filter = baseFilter as OverDueReportFilter;

            if (filter == null)
            {
                return(null);
            }

            IDictionary <string, object> inPutParam = new Dictionary <string, object>();

            inPutParam.Add("@BeginDate", filter.BeginDate);
            inPutParam.Add("@EndDate", filter.EndDate);
            inPutParam.Add("@Type", filter.AppealType);

            return(inPutParam);
        }
Exemple #3
0
        /// <summary>
        /// 检索数据
        /// </summary>
        /// <param name="baseFilter"></param>
        /// <param name="responseEntity"></param>
        public void SearchData(BaseFilter baseFilter, ResponseEntity responseEntity)
        {
            if (baseFilter == null)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError);
                return;
            }

            OverDueReportFilter filter = baseFilter as OverDueReportFilter;

            if (filter == null)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError);
                return;
            }

            var reportDetailList = Singleton <GetOverDueTotalSearchResultDAL <OverDueDetailReportData> >
                                   .Instance.SearchData(baseFilter);

            List <OverDueReportViewData> listOverDueReportViewData         = new List <OverDueReportViewData>();
            Dictionary <string, List <OverDueDetailReportData> > dicReport = new Dictionary <string, List <OverDueDetailReportData> >();
            List <OverDueDetailReportData> lstTmp;
            List <int> lstBussinessIds = new List <int>();

            foreach (var detail in reportDetailList)
            {
                if (!dicReport.TryGetValue(detail.OverTime, out lstTmp))
                {
                    lstTmp = new List <OverDueDetailReportData>();
                }

                lstTmp.Add(detail);
                dicReport[detail.OverTime] = lstTmp;
            }

            int index             = 0;
            int loanCount         = 0;
            int firstOverDueCount = 0;
            int fourM2Count       = 0;
            int threeNonePayCount = 0;
            int m1Count           = 0;
            int m2Count           = 0;
            int m3Count           = 0;
            int m4Count           = 0;
            int m5PlusCount       = 0;
            OverDueReportViewData report;

            foreach (var key in dicReport.Keys)
            {
                lstTmp = dicReport[key];
                report = new OverDueReportViewData();
                report.FirstOverDueBusinessIDs = "";
                report.FourM2BusinessIDs       = "";
                report.ThreeNonePayBusinessIDs = "";
                report.M1BusinessIDs           = "";
                report.M2BusinessIDs           = "";
                report.M3BusinessIDs           = "";
                report.M4BusinessIDs           = "";
                report.M5PlusBusinessIDs       = "";

                // 序号
                report.No = ++index;
                // 统计月份
                report.StaticMonth = key;

                loanCount         = 0;
                firstOverDueCount = 0;
                fourM2Count       = 0;
                threeNonePayCount = 0;
                m1Count           = 0;
                m2Count           = 0;
                m3Count           = 0;
                m4Count           = 0;
                m5PlusCount       = 0;

                if (lstTmp == null || lstTmp.Count == 0)
                {
                    continue;
                }

                lstBussinessIds.Clear();
                foreach (var detail in lstTmp)
                {
                    if (!lstBussinessIds.Contains(detail.Bid))
                    {
                        lstBussinessIds.Add(detail.Bid);
                    }

                    // 首逾数
                    if (detail.DifferCountFirst > 0 &&
                        !report.FirstOverDueBusinessIDs.Contains(detail.Bid.ToString()))
                    {
                        firstOverDueCount++;
                        report.FirstOverDueBusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                    }
                    // 前4期账单出现M2的数量
                    if (detail.DifferCountFour > 0 &&
                        !report.FourM2BusinessIDs.Contains(detail.Bid.ToString()))
                    {
                        fourM2Count++;
                        report.FourM2BusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                    }
                    // 前3期账单0次还款
                    if (detail.DifferCountThree == 0 &&
                        !report.ThreeNonePayBusinessIDs.Contains(detail.Bid.ToString()))
                    {
                        threeNonePayCount++;
                        report.ThreeNonePayBusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                    }

                    int mCount = detail.OverMonth;
                    switch (mCount)
                    {
                    case 0:
                        break;

                    case 1:
                        if (!report.M1BusinessIDs.Contains(detail.Bid.ToString()))
                        {
                            m1Count++;
                            report.M1BusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                        }
                        break;

                    case 2:
                        if (!report.M2BusinessIDs.Contains(detail.Bid.ToString()))
                        {
                            m2Count++;
                            report.M2BusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                        }
                        break;

                    case 3:
                        if (!report.M3BusinessIDs.Contains(detail.Bid.ToString()))
                        {
                            m3Count++;
                            report.M3BusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                        }
                        break;

                    case 4:
                        if (!report.M4BusinessIDs.Contains(detail.Bid.ToString()))
                        {
                            m4Count++;
                            report.M4BusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                        }
                        break;

                    default:
                        if (!report.M5PlusBusinessIDs.Contains(detail.Bid.ToString()))
                        {
                            m5PlusCount++;
                            report.M5PlusBusinessIDs += WebServiceConst.Separater_Comma + detail.Bid;
                        }
                        break;
                    }
                }

                // 已放款数
                loanCount        = lstBussinessIds.Count;
                report.LoanCount = loanCount;

                report.FirstOverDueCount = firstOverDueCount;
                report.FourM2Count       = fourM2Count;
                report.ThreeNonePayCount = threeNonePayCount;
                // M1逾期率
                report.M1Rate
                    = string.Format("{0}%", Math.Round((double)m1Count / (double)loanCount * 100, 1).ToString("#0.0"));
                // M2逾期率
                report.M2Rate
                    = string.Format("{0}%", Math.Round((double)m2Count / (double)loanCount * 100, 1).ToString("#0.0"));
                // M3逾期率
                report.M3Rate
                    = string.Format("{0}%", Math.Round((double)m3Count / (double)loanCount * 100, 1).ToString("#0.0"));
                // M4逾期率
                report.M4Rate
                    = string.Format("{0}%", Math.Round((double)m4Count / (double)loanCount * 100, 1).ToString("#0.0"));
                // M5+逾期率
                report.M5PlusRate
                    = string.Format("{0}%", Math.Round((double)m5PlusCount / (double)loanCount * 100, 1).ToString("#0.0"));
                listOverDueReportViewData.Add(report);
            }

            if (listOverDueReportViewData == null || listOverDueReportViewData.Count == 0)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.NoResult);
                m_Logger.Info("未查询到数据。");
            }
            else
            {
                // 设置输出文件
                SetExportFile(filter, listOverDueReportViewData, responseEntity);
            }
        }