public JsonResult GetSeniorAuditList(CarInsureCommissionRateCondition condition) { var waitAuditCount = (from h in CurrentDb.BizProcessesAudit where (h.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit) && h.Status == (int)Enumeration.CommissionRateAuditStatus.WaitSeniorAudit select h.Id).Count(); var inAuditCount = (from h in CurrentDb.BizProcessesAudit where (h.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit) && h.Status == (int)Enumeration.CommissionRateAuditStatus.InSeniorAudit && h.Auditor == this.CurrentUserId select h.Id).Count(); var query = (from b in CurrentDb.BizProcessesAudit join e in CurrentDb.CarInsureCommissionRate on b.AduitReferenceId equals e.Id where (b.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit) select new { b.Id, e.ReferenceName, e.Commercial, e.Compulsory, b.Status, b.Auditor, b.CreateTime, b.JsonData }); if (condition.AuditStatus == Enumeration.CommissionRateAuditStatus.WaitSeniorAudit) { query = query.Where(m => m.Status == (int)Enumeration.CommissionRateAuditStatus.WaitSeniorAudit); } else if (condition.AuditStatus == Enumeration.CommissionRateAuditStatus.InSeniorAudit) { query = query.Where(m => m.Status == (int)Enumeration.CommissionRateAuditStatus.InSeniorAudit && m.Auditor == this.CurrentUserId); } int total = query.Count(); int pageIndex = condition.PageIndex; int pageSize = 10; query = query.OrderByDescending(r => r.CreateTime).Skip(pageSize * (pageIndex)).Take(pageSize); List <object> list = new List <object>(); foreach (var item in query) { CommissionRateAdjustModel commissionRateAdjustModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommissionRateAdjustModel>(item.JsonData); list.Add(new { item.Id, BeforeCommercial = commissionRateAdjustModel.Before.Commercial.ToPrice(), AfterCommercial = commissionRateAdjustModel.After.Commercial.ToPrice(), BeforeCompulsory = commissionRateAdjustModel.Before.Compulsory.ToPrice(), AfterCompulsory = commissionRateAdjustModel.After.Compulsory.ToPrice(), AuditStatus = item.Status, item.ReferenceName, item.CreateTime, }); } PageEntity pageEntity = new PageEntity { PageSize = pageSize, TotalRecord = total, Rows = list, Status = new { waitAuditCount = waitAuditCount, inAuditCount = inAuditCount } }; return(Json(ResultType.Success, pageEntity, "")); }
public CustomJsonResult Apply(int operater, CarInsureCommissionRate afterCommissionRate, string reason) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var beforeCommissionRate = CurrentDb.CarInsureCommissionRate.Where(m => m.Id == afterCommissionRate.Id).FirstOrDefault(); if (beforeCommissionRate == null) { return(new CustomJsonResult(ResultType.Failure, "不存在该对象")); } if (beforeCommissionRate.Commercial >= 10) { return(new CustomJsonResult(ResultType.Failure, "交强险比例过大,不能超过10%")); } if (beforeCommissionRate.Compulsory >= 10) { return(new CustomJsonResult(ResultType.Failure, "商业险比例过大,不能超过10%")); } var bizProcessesAuditing = CurrentDb.BizProcessesAudit.Where(m => m.AduitReferenceId == beforeCommissionRate.Id && m.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit && m.Status < 5).FirstOrDefault(); if (bizProcessesAuditing != null) { return(new CustomJsonResult(ResultType.Failure, "已经在有1个在申请中,请等候")); } CommissionRateAdjustModel adjustModel = new CommissionRateAdjustModel(); adjustModel.Before = beforeCommissionRate; adjustModel.After = afterCommissionRate; var bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.CommissionRateAudit, beforeCommissionRate.Id, Enumeration.CommissionRateAuditStatus.WaitPrimaryAudit, "佣金修改申请", reason, adjustModel); BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CommissionRateAuditStep.Apply, bizProcessesAudit.Id, operater, reason, "提交申请调整费率,正等待初审", this.DateTime); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, "申请成功"); } return(result); }
public CustomJsonResult Add(int operater, int insuranceCompanyId, string insuranceCompanyName, string insuranceCompanyImgUrl, decimal commercialRate, decimal compulsoryRate) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var isExsits = CurrentDb.CarInsuranceCompany.Where(m => m.InsuranceCompanyId == insuranceCompanyId).Count(); if (isExsits > 0) { ts.Dispose(); return(new CustomJsonResult(ResultType.Failure, "已存在相同保险公司的名称")); } CarInsuranceCompany carInsuranceCompany = new CarInsuranceCompany(); carInsuranceCompany.InsuranceCompanyId = insuranceCompanyId; carInsuranceCompany.InsuranceCompanyImgUrl = insuranceCompanyImgUrl; carInsuranceCompany.Creator = operater; carInsuranceCompany.CreateTime = DateTime.Now; carInsuranceCompany.Status = Enumeration.CarInsuranceCompanyStatus.Audit; CurrentDb.CarInsuranceCompany.Add(carInsuranceCompany); CurrentDb.SaveChanges(); CarInsureCommissionRate carInsureCommissionRate = new CarInsureCommissionRate(); carInsureCommissionRate.Commercial = commercialRate; carInsureCommissionRate.Compulsory = compulsoryRate; carInsureCommissionRate.CreateTime = this.DateTime; carInsureCommissionRate.Creator = operater; carInsureCommissionRate.ReferenceId = insuranceCompanyId; carInsureCommissionRate.ReferenceName = insuranceCompanyName; carInsureCommissionRate.Type = Enumeration.CommissionRateType.InsuranceCompany; CurrentDb.CarInsureCommissionRate.Add(carInsureCommissionRate); CurrentDb.SaveChanges(); CommissionRateAdjustModel adjustModel = new CommissionRateAdjustModel(); adjustModel.Before = new CarInsureCommissionRate(); adjustModel.After = carInsureCommissionRate; var bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.CommissionRateAudit, carInsureCommissionRate.Id, Enumeration.CommissionRateAuditStatus.WaitPrimaryAudit, "佣金修改申请", "", adjustModel); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, "提交成功"); } return(result); }
public SeniorAuditViewModel(int id) { var bizProcessesAudit = BizFactory.BizProcessesAudit.ChangeCommissionRateAuditStatus(this.Operater, id, Enumeration.CommissionRateAuditStatus.InSeniorAudit, "正在复审中"); if (bizProcessesAudit != null) { _bizProcessesAudit = bizProcessesAudit; var commissionRate = CurrentDb.CarInsureCommissionRate.Where(m => m.Id == bizProcessesAudit.AduitReferenceId).FirstOrDefault(); if (commissionRate != null) { _commissionRate = commissionRate; } _commissionRateAdjustModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommissionRateAdjustModel>(bizProcessesAudit.JsonData); } }
public JsonResult GetApplyList(CarInsureCommissionRateCondition condition) { string name = condition.Name.ToSearchString(); var query = (from b in CurrentDb.BizProcessesAudit join e in CurrentDb.CarInsureCommissionRate on b.AduitReferenceId equals e.Id where b.AduitType == Enumeration.BizProcessesAuditType.CommissionRateAudit && (name.Length == 0 || e.ReferenceName.Contains(name)) select new { e.Id, e.ReferenceName, e.Commercial, e.Compulsory, b.Status, b.CreateTime, b.JsonData }); int total = query.Count(); int pageIndex = condition.PageIndex; int pageSize = 10; query = query.OrderByDescending(r => r.CreateTime).Skip(pageSize * (pageIndex)).Take(pageSize); List <object> list = new List <object>(); foreach (var item in query) { CommissionRateAdjustModel commissionRateAdjustModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommissionRateAdjustModel>(item.JsonData); list.Add(new { item.Id, BeforeCommercial = commissionRateAdjustModel.Before.Commercial.ToPrice(), AfterCommercial = commissionRateAdjustModel.After.Commercial.ToPrice(), BeforeCompulsory = commissionRateAdjustModel.Before.Compulsory.ToPrice(), AfterCompulsory = commissionRateAdjustModel.After.Compulsory.ToPrice(), item.ReferenceName, Status = ((Enumeration.CommissionRateAuditStatus)item.Status).GetCnName(), item.CreateTime, }); } PageEntity pageEntity = new PageEntity { PageSize = pageSize, TotalRecord = total, Rows = list }; return(Json(ResultType.Success, pageEntity, "")); }