コード例 #1
0
        // todo switch to private method
        public IEnumerable <AfterCase> GetAfterCaseByData(DateTime startTime, DateTime?endTime)
        {
            IQueryable <BaseAudit> baseAudits = GetAllAfterCases().Where(p => p.CreateTime >= startTime);

            if (endTime.HasValue)
            {
                baseAudits = baseAudits.Where(p => p.CreateTime < endTime);
            }
            baseAudits = baseAudits.OrderBy(p => p.CreateTime);

            var afterCases = new List <AfterCase>();
            List <Dictionary> dictionaries = _dictionaryBll.QueryByParentKey("-ThirdPlatform").ToList();

            foreach (var audit in baseAudits)
            {
                // 获取借款人
                RelationPersonAudit customer = _relationPersonAuditDal.GetAll().Single(p => p.AuditID == audit.ID && p.RelationType == "-PersonType-JieKuanRen");

                Lending lendingInfo = audit.NewCaseNum.Contains("HIS") ? _lendingDal.GetHIS(audit.ID) : _lendingDal.Get(audit.ID);

                SalesGroup salesGroup = _salesGroupDal.GetAll().Single(p => p.ID == audit.SalesGroupID);

                PublicMortgage mortgage = _mortgageBll.Query(audit.NewCaseNum);

                var fundDictionary = dictionaries.FirstOrDefault(p => p.Path == audit.ThirdParty);


                // 借款人和共同借款人
                var debtNames =
                    _relationPersonAuditDal.GetAll()
                    .Where(
                        p =>
                        p.AuditID == audit.ID &&
                        (p.RelationType == "-PersonType-JieKuanRen" || p.IsCoBorrower == 1)).Select(p => p.Name);

                var afterase = new AfterCase();

                afterase.CaseNum                      = audit.NewCaseNum;
                afterase.SalesGrouptId                = salesGroup.CompanyCode;
                afterase.SalesCompanyName             = salesGroup.Company;
                afterase.CompanyCode                  = salesGroup.Company.PadRight(4).Substring(0, 4);
                afterase.CustomerId                   = customer.ID;
                afterase.CustomerName                 = audit.BorrowerName;
                afterase.CustomerIdentificationType   = customer.IdentificationType;
                afterase.CustomerIdentificationNumber = customer.IdentificationNumber;
                afterase.AccountName                  = audit.OpeningSite ?? string.Empty;
                afterase.EarnestMoney                 = audit.CustEarnestMoney.ToString();
                afterase.DebtName                     = string.Join(",", debtNames.ToArray());
                afterase.LenderName                   = audit.LenderName ?? string.Empty;

                afterase.LoanTerm             = audit.AuditTerm ?? string.Empty;
                afterase.LendingDate          = lendingInfo.LendTime == null ? "" : lendingInfo.LendTime.ToString();
                afterase.PaymentDay           = lendingInfo.PaymentDay == null ? "" : lendingInfo.PaymentDay.ToString();
                afterase.ContractAmount       = audit.NewCaseNum.Contains("HIS") ? lendingInfo.ContractAmount.ToString() : mortgage.ContractAmount.ToString();
                afterase.ContractInterestRate = CONTRACT_INTEREST_RATE;
                afterase.RealInterestRate     = audit.AuditRate > 2M ? audit.AuditRate.ToString() : (audit.AuditRate * 12).ToString(); // 审计利率*12=实际年利率

                afterase.ReceiveType      = RECEIVE_TYPE;
                afterase.FundId           = audit.ThirdParty ?? string.Empty;
                afterase.FundInterestRate = GetThirdPartyRate(audit);
                afterase.FundName         = fundDictionary == null ? string.Empty : fundDictionary.Text;
                // 债转资金当作自有资金处理
                afterase.LoadType       = audit.CaseMode == DictionaryType.CaseMode.ZhaiZhuan ? DictionaryType.CaseMode.ZiYouZiJin : audit.CaseMode;
                afterase.VirtualAccount = "";
                afterase.ContractNum    = mortgage.ContractNo;

                afterCases.Add(afterase);
            }

            return(afterCases);
        }