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