public PublicMortgage QueryById(string id) { var baseaudit = _baseAuditDal.GetAllBase().FirstOrDefault(p => p.ID == id); if (baseaudit.IsNotNull()) { var publicCase = _baseAuditDal.GetAllBase().Where(t => t.NewCaseNum == baseaudit.NewCaseNum).OrderByDescending(t => t.Version).FirstOrDefault(t => t.CaseStatus == CaseStatus.PublicMortgage || t.CaseStatus == CaseStatus.ConfrimPublic); if (publicCase.IsNotNull()) { return(_mortgageDal.GetAll().AsNoTracking().FirstOrDefault(p => p.ID == publicCase.ID)); } } return(null); }
/// <summary> /// 获取指定日期的各个状态案件的统计信息 /// </summary> /// <param name="salesGroup">销售团队信息</param> /// <param name="date">日期</param> /// <returns>统计信息</returns> private DayStatisticsDto GetSingleGroupStatistics(SalesGroup salesGroup, DateTime date) { var output = new DayStatisticsDto(); DateTime endDate = date.AddDays(1.0); DateTime thisMonth = new DateTime(date.Year, date.Month, 1); DateTime nextMonth = thisMonth.AddMonths(1); // 审核案件 var audits = _baseAuditDal.GetAllBase() .Where(p => p.SalesGroupID == salesGroup.ID && p.CreateTime >= date && p.CreateTime < endDate) .ToList(); var monthAudits = _baseAuditDal.GetAllBase() .Where(p => p.SalesGroupID == salesGroup.ID && p.CreateTime >= thisMonth && p.CreateTime < nextMonth); // 进件案件 var baseCases = _baseCaseDal.GetAll() .Where(p => p.SalesGroupID == salesGroup.ID && p.CreateTime > date && p.CreateTime < endDate && p.NewCaseNum != null); // 已签约案件 var mortages = GetMortgages(audits).ToList(); // 已放款案件 var afterCases = GetLendings(audits).ToList(); // 月放款案件 var monthAfterCases = GetLendings(monthAudits); output.SalesGroupId = salesGroup.ID; output.SalesGroupName = salesGroup.Company; output.BaseCaseCount = baseCases.Count(); output.BaseCaseAmount = baseCases.Sum(p => p.LoanAmount) ?? 0M; output.AuditCaseCount = audits.Count(p => p.CaseStatus == CaseStatus.PublicMortgage); output.AuditCaseAmount = audits.Where(p => p.CaseStatus == CaseStatus.PublicMortgage).Sum(p => p.AuditAmount) ?? 0M; output.PublicCaseCount = mortages.Count(); output.PublicCaseAmount = mortages.Sum(p => p.ContractAmount) ?? 0M; output.AfterCaseCount = afterCases.Count(); output.AfterCaseAmount = afterCases.Sum(p => p.ContractAmount) ?? 0M; output.MonthAfterCaseAmount = monthAfterCases.Sum(p => p.ContractAmount) ?? 0M; output.MonthAfterCaseCount = monthAfterCases.Count(); return(output); }
/// <summary> /// 获取最近版本案件 /// </summary> /// <param name="casenum">案件号</param> /// <returns>案件信息</returns> private BaseAudit GetMaxVersionAudit(string casenum) { return(_auditDal.GetAllBase() .Where(p => p.NewCaseNum == casenum) .OrderByDescending(p => p.Version) .FirstOrDefault()); }
/// <summary> /// 年利率变更迁移 /// </summary> public void TransferAnnualRate() { // step 1 年利率重新计算 var baseAuditCases = _baseAuditDal.GetAllBase().Where(p => p.AuditRate != null || p.AnnualRate != null); baseAuditCases.ForEach(p => { if (p.AuditRate != null && p.AuditRate < 2M) { p.AuditRate = p.AuditRate * 12; } if (p.AnnualRate != null && p.AnnualRate < 2M) { p.AnnualRate = p.AnnualRate * 12; } }); _baseAuditDal.UpdateRange(baseAuditCases); _baseAuditDal.AcceptAllChange(); }
private void UpdateAuditCaseNum(BaseAuditDAL baseAuditDal, SalesGroupDAL salesGroupDal) { string[] caseNum = baseAuditDal.GetAll().Where(p => p.CaseNum != null).Select(p => p.CaseNum).Distinct().ToArray(); caseNum.ForEach(p => { var sameCaseNumCases = baseAuditDal.GetAllBase().Where(c => c.CaseNum == p).ToList(); var salesGroupId = sameCaseNumCases.First().SalesGroupID; var salesGroup = salesGroupDal.GetAll().First(t => t.ID == salesGroupId); sameCaseNumCases.ForEach(t => { t.CaseNum = (Convert.ToInt32(t.CaseNum.Substring(4)) + 100000).ToString(); t.NewCaseNum = "L" + salesGroup.ShortCode + "-" + t.CaseNum; }); baseAuditDal.UpdateRange(sameCaseNumCases); baseAuditDal.AcceptAllChange(); }); }
public BaseAudit QueryById(string id) { return(_auditDal.GetAllBase().FirstOrDefault(p => p.ID == id)); }